Estoy tratando de buscar archivos usando findy poner esos archivos en una matriz Bash para poder hacer otras operaciones en ellos (por ejemplo, lso grepellos). Pero no puedo entender por qué readarrayno está leyendo el findresultado, ya que está conectado a él.
Digamos que tengo dos archivos en el directorio actual file1.txty file2.txt. Entonces la findsalida es la siguiente:
$ find . -name "file*"
./file1.txt
./file2.txt
Así que quiero canalizar eso en una matriz cuyos dos elementos son las cadenas "./file1.txt"y "./file2.txt"(sin comillas, obviamente).
He intentado esto, entre algunas otras cosas:
$ declare -a FILES
$ find . -name "file*" | readarray FILES
$ echo "${FILES[@]}"; echo "${#FILES[@]}"
0
Como puede ver en la echosalida, mi matriz está vacía.
Entonces, ¿qué estoy haciendo mal aquí exactamente? ¿Por qué readarrayno está leyendo findla salida como entrada estándar y colocando esas cadenas en la matriz?
readarray -d '' < <(find your_args -print0)