Как перевести несколько текстовых файлов, сохраненных в разных папках?

Моя хитрость заключается в том, чтобы добавить следующий псевдоним в.bashrc

alias reboot='echo "Вашей учетной записи не разрешено выполнять команду перезагрузки без sudo"'

1
05.03.2020, 21:34
1 ответ

Делать это по одному файлу за раз? Если это не много-много файлов, просмотр того, что вы делаете, имеет решающее значение.

Если они живут в dir1, dir2и так далее:

for d in dir1 dir2 dir3; do
   (cd $d; for f in `ls *.txt`; do frobnicate $f; done)
done

Объяснение :Внешний forобходит каталоги. В подадле ((...))мы входим в каталог, хватаем имена любых *.txtфайлов, frobnicateкаждый из них по очереди (внутренний for), и мы done. Поскольку внутреннее задание находится в подоболочке, мы вернулись к тому, с чего начали, и можем перейти в следующий каталог.

Осторожно, это взорвется вам в лицо, если какое-либо имя каталога или файла содержит пробелы или другие необычные символы. Он не сохраняет оригиналы (в случае, если frobnicateискажает их содержимое ), и (, очевидно, )заблокирует любые найденные файлы.

0
28.04.2021, 23:21

Теги

Похожие вопросы