Найти файлы в нескольких каталогах, взятых из списка в файле?
FreeBSD 9.2 RELEASE p2
У меня есть файлfromdirs.txt
, В этом файле новая директория разделена списком каталогов примерно так:
/etc
/home
/home/goods/
Мне нужно сначала найти во всех файлах каталога, которые имеют имена вроде «хорошо» или содержат строку «(NODES_'TASK ')», а затем скопировать все эти файлы в каталог/tmp
.
2.sh файл chmod + x и 755 из файла dirs.txt chmod + x и 755
Этот код дает мне ошибку
IFS=$'\n' read -d '' -r -a dirs < fromDirs.txt
find "${dirs[@]}" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;
2.sh: невозможно открыть fromDirs.txt: нет такого файла или каталога
2.sh: $ {dirs [...}: плохая замена
Но файл fromDirs.txt существует и 2.sh работает из его директории размещения, также я пытаюсь предоставить полный путь вместо fromDirs.txt и ошибку то же самое
Этот код дает мне ошибку
FILE=fromDirs.txt
IFS='\n'
while read -r dirs
do
find "$dirs" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;
done < "$FILE"
2.sh: 6: Синтаксическая ошибка: «выполнено» неожиданно (ожидается «выполнено»)
Этот код дает мне ошибку тоже
FILENAME=fromDirs.txt
awk '{kount++;print kount, $0}
END{print "\nTotal " kount " lines read"}' $FILENAME
2.sh:: не найдено awk: невозможно открыть файл из исходной строки Dirs.txt № 2
Так как читать файл построчно и делать то, что мне нужно?