У меня есть несколько файлов в разных подкаталогах. Некоторые из них имеют разделитель табуляции с одним «символом табуляции», как показано ниже:
1971 1 1 120
1971 1 2 148
1971 1 3 159,5
...
А другие имеют разделитель табуляции с 7 «символами табуляции», как показано ниже:
1971 1 1 120
1971 1 2 148
...
Есть ли способ применить один и тот же разделитель «табуляция» ко всем файлам всех подкаталогов?
Используя find
+ rename
:
find . -type f -exec rename -n 's/\t{2,}/\t/g' {} \;
find
: ищет директивную иерархию .
: ищет текущий рабочий справочник -type f
: поиски только файлы -exec [...] {} [...] \;
: выполняет команду на каждом результате; rename
: переименовывает файлы или папки -n
: выполняет пробный прогон s/\t{2,}/\t/g
: заменяет любое количество происшествий 2 или больше табулирования с единственным табулированием; , Если результат - ожидаемый, удалите -n
выбор.
Типовая продукция (\011
= \t
):
% tree
.
├── 1
│ ├── 1\0111\011\0111
│ ├── 1\0111\011\0112
│ ├── 1\0111\011\0113
│ ├── 1\0112\011\0111
│ ├── 1\0112\011\0112
│ ├── 1\0112\011\0113
│ ├── 1\0113\011\0111
│ ├── 1\0113\011\0112
│ └── 1\0113\011\0113
├── 2
│ ├── 2\0111\011\0111
│ ├── 2\0111\011\0112
│ ├── 2\0111\011\0113
│ ├── 2\0112\011\0111
│ ├── 2\0112\011\0112
│ ├── 2\0112\011\0113
│ ├── 2\0113\011\0111
│ ├── 2\0113\011\0112
│ └── 2\0113\011\0113
└── 3
├── 3\0111\011\0111
├── 3\0111\011\0112
├── 3\0111\011\0113
├── 3\0112\011\0111
├── 3\0112\011\0112
├── 3\0112\011\0113
├── 3\0113\011\0111
├── 3\0113\011\0112
└── 3\0113\011\0113
3 directories, 27 files
% find . -type f -exec rename 's/\t{2,}/\t/g' {} \;
% tree
.
├── 1
│ ├── 1\0111\0111
│ ├── 1\0111\0112
│ ├── 1\0111\0113
│ ├── 1\0112\0111
│ ├── 1\0112\0112
│ ├── 1\0112\0113
│ ├── 1\0113\0111
│ ├── 1\0113\0112
│ └── 1\0113\0113
├── 2
│ ├── 2\0111\0111
│ ├── 2\0111\0112
│ ├── 2\0111\0113
│ ├── 2\0112\0111
│ ├── 2\0112\0112
│ ├── 2\0112\0113
│ ├── 2\0113\0111
│ ├── 2\0113\0112
│ └── 2\0113\0113
└── 3
├── 3\0111\0111
├── 3\0111\0112
├── 3\0111\0113
├── 3\0112\0111
├── 3\0112\0112
├── 3\0112\0113
├── 3\0113\0111
├── 3\0113\0112
└── 3\0113\0113
3 directories, 27 files
server
@server
от, роют + команда трассировки. Связанный с Вашей конфигурацией сервера,forward:only
иforwarders {}
опций достаточно, чтобы сделать то, что Вы ожидаете (передавать все запросы к внешнему преобразователю). Ваш внешний преобразователь (192.168.12.4) сделает рекурсивные запросы для Вас и возвратит результаты 192.168.12.90 и затем обратно Вам. – Artex 31 January 2017 в 20:20