Массовый перебор файлов find/xargs/for/while


Перебор и удаление выбранных файлов внутри всех подкаталогов

# find . -name "*.bak' -delete

Перебор и поиск в файлах внутри всех подкаталогов

# find . -name "*.txt" -exec grep -H searchstring '{}' \;

Для подсчета строк в файлах с сортировкой полезен приём:

# find . -type f -name 'RUS*' -print0 | sort -z | xargs -r0 wc -l

Перебор файлов в текущем каталоге с вызовом скрипта

# for file in *.csv; do ./script.php < $file > $file.csv; done

Если в имени файла есть пробелы - лучше делать так

# while read file; do ./script.php < "$file" > "$file.csv"; done<<<"$(find . -type f -name "*.csv")"

Метод обработки файлов с помощью sed

# ls *.txt | sed -r 's#.*#./script.php < \0 > \0.csv#' | bash