Мне нравится пример «найти» выше для рекурсивного приложения. Чтобы адаптировать его к нерекурсивному, только изменение файлов в текущем каталоге, которое соответствует шаблону, расширение оболочки оболочки может быть достаточным для небольших объемов файлов:
ls *.java | awk '{print "expand -t 4 ", $0, " > /tmp/e; mv /tmp/e ", $0}' | sh -v
Если вы хотите, чтобы он молчал после вы надеетесь, что он работает, просто отпустите -v
в команде sh
в конце.
Конечно, вы можете выбрать любой набор файлов в первой команде. Например, перечислите только определенный подкаталог (или каталоги) таким образом:
ls mod/*/*.php | awk '{print "expand -t 4 ", $0, " > /tmp/e; mv /tmp/e ", $0}' | sh
Или, в свою очередь, запустите find (1) с некоторой комбинацией параметров глубины и т. Д.:
find mod/ -name '*.php' -mindepth 1 -maxdepth 2 | awk '{print "expand -t 4 ", $0, " > /tmp/e; mv /tmp/e ", $0}' | sh