¿Encontrar archivos en múltiples directorios tomados de la lista en un archivo?

FreeBSD 9.2 RELEASE p2

Tengo un archivofromdirs.txt. En este archivo hay una nueva lista de directorios separados por líneas de esta manera:

/etc
/home
/home/goods/

Primero necesito encontrar en todos los archivos del directorio que tienen nombres como "bueno" o que contienen una cadena "(NODES_'TASK ')" y luego copiar todos estos archivos en el directorio/tmp.

2.sh archivo chmod + x y es 755 fromDirs.txt archivo chmod + x y es 755

Este código me da error

IFS=

2.sh: no se puede abrir desdeDirs.txt: no existe tal archivo o directorio

2.sh: $ {dirs [...}: mala sustitución

Pero el archivo fromDirs.txt existe y 2.sh se ejecuta desde su directorio de asignación, también estoy tratando de proporcionar la ruta completa en lugar de fromDirs.txt y error el mismo

Este código me da error

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: Error de sintaxis: "hecho" inesperado (esperando "hacer")

Este código también me da un error

FILENAME=fromDirs.txt

awk '{kount++;print  kount, $0}
     END{print "\nTotal " kount " lines read"}' $FILENAME

2.sh:: no encontrado awk: no se puede abrir el archivo desde la línea de origen Dirs.txt número 2

Entonces, ¿cómo leer el archivo línea por línea y hacer lo que necesito?

\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: no se puede abrir desdeDirs.txt: no existe tal archivo o directorio

2.sh: $ {dirs [...}: mala sustitución

Pero el archivo fromDirs.txt existe y 2.sh se ejecuta desde su directorio de asignación, también estoy tratando de proporcionar la ruta completa en lugar de fromDirs.txt y error el mismo

Este código me da error

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: Error de sintaxis: "hecho" inesperado (esperando "hacer")

Este código también me da un error

FILENAME=fromDirs.txt

awk '{kount++;print  kount, $0}
     END{print "\nTotal " kount " lines read"}' $FILENAME

2.sh:: no encontrado awk: no se puede abrir el archivo desde la línea de origen Dirs.txt número 2

Entonces, ¿cómo leer el archivo línea por línea y hacer lo que necesito?

Respuestas a la pregunta(1)

Su respuesta a la pregunta