Estoy tratando de buscar archivos usando find
y poner esos archivos en una matriz Bash para poder hacer otras operaciones en ellos (por ejemplo, ls
o grep
ellos). Pero no puedo entender por qué readarray
no está leyendo el find
resultado, ya que está conectado a él.
Digamos que tengo dos archivos en el directorio actual file1.txt
y file2.txt
. Entonces la find
salida 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 echo
salida, mi matriz está vacía.
Entonces, ¿qué estoy haciendo mal aquí exactamente? ¿Por qué readarray
no está leyendo find
la salida como entrada estándar y colocando esas cadenas en la matriz?
readarray -d '' < <(find your_args -print0)