Encontrar arquivos em vários diretórios retirados da lista em um arquivo?
FreeBSD 9.2 RELEASE p2
Eu tenho um arquivofromdirs.txt
. Nesse arquivo, há uma nova lista de diretórios separados por linha, assim:
/etc
/home
/home/goods/
Preciso primeiro encontrar em todos os arquivos do diretório que tenham nomes como "bom" ou conter string "(NODES_'TASK ')" e depois copiar todos esses arquivos no diretório/tmp
.
2.sh arquivo chmod + xe é 755 fromDirs.txt arquivo chmod + x e é 755
Este código me deu erro
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: não pode abrir fromDirs.txt: esse arquivo ou diretório não existe
2.sh: $ {dirs [...}: Substituição incorreta
Mas o arquivo fromDirs.txt existe e o 2.sh está sendo executado no diretório de alocação, também estou tentando fornecer o caminho completo em vez de fromDirs.txt e com o mesmo erro
Este código me deu erro
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: Erro de sintaxe: "pronto" inesperado (esperando "do")
Este código também me deu erro
FILENAME=fromDirs.txt
awk '{kount++;print kount, $0}
END{print "\nTotal " kount " lines read"}' $FILENAME
2.sh:: não encontrado awk: não é possível abrir o arquivo fromDirs.txt número da linha de origem 2
Então, como ler o arquivo linha por linha e fazer o que eu preciso?