Sto cercando di cercare i file utilizzando find
e inserirli in un array Bash in modo da poter eseguire altre operazioni su di essi (ad esempio ls
o su di grep
essi). Ma non riesco a capire perché readarray
non stia leggendo l' find
output mentre viene reindirizzato.
Supponiamo di avere due file nella directory corrente file1.txt
e file2.txt
. Quindi l' find
output è il seguente:
$ find . -name "file*"
./file1.txt
./file2.txt
Quindi voglio reindirizzarlo in un array i cui due elementi sono le stringhe "./file1.txt"
e "./file2.txt"
(senza virgolette, ovviamente).
Ho provato questo, tra le altre cose:
$ declare -a FILES
$ find . -name "file*" | readarray FILES
$ echo "${FILES[@]}"; echo "${#FILES[@]}"
0
Come puoi vedere echo
dall'output, il mio array è vuoto.
Quindi cosa sto facendo esattamente di sbagliato qui? Perché readarray
non leggere find
l'output come input standard e inserire quelle stringhe nell'array?
readarray -d '' < <(find your_args -print0)