Я хочу написать сценарий bash, который (рекурсивно) обрабатывает все файлы определенного типа.bash: обработка (рекурсивно) через все файлы в каталоге
Я знаю, что могу получить список соответствия файлов, используя поиск таким образом:
находку. -name «* .ext»
Я хочу использовать это в скрипте:
- рекурсивно obatin список файлов с заданным расширением
- получить полный путь доступа к файлу
- пройти полный путь к файлу к другому сценарию
- Проверьте код возврата из сценария. Если нет нуля, запишите имя файла, который не может быть обработан.
Моя первая попытка выглядит (псевдокод), как это:
ROOT_DIR = ~/work/projects
cd $ROOT_DIR
for f in `find . -name "*.ext"`
do
#need to lop off leading './' from filename, but I havent worked out how to use
#cut yet
newname = `echo $f | cut -c 3
filename = "$ROOT_DIR/$newname"
retcode = ./some_other_script $filename
if $retcode ne 0
logError("Failed to process file: $filename")
done
Это моя первая попытка написать Баш скрипт, так что выше фрагмент кода может работать не так. Надеюсь, что логика того, что я пытаюсь сделать, достаточно ясна, и кто-то может показать, как присоединиться к точкам и преобразовать псевдокод выше в рабочий скрипт.
Я бегу на Ubuntu
Если вы используете «найти $ ROOT_DIR -name "* .exe" вам не нужно будет играть с ведущим «./». – 2010-12-10 15:39:27