Sto cercando di cercare i file utilizzando finde inserirli in un array Bash in modo da poter eseguire altre operazioni su di essi (ad esempio lso su di grepessi). Ma non riesco a capire perché readarraynon stia leggendo l' findoutput mentre viene reindirizzato.
Supponiamo di avere due file nella directory corrente file1.txte file2.txt. Quindi l' findoutput è 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 echodall'output, il mio array è vuoto.
Quindi cosa sto facendo esattamente di sbagliato qui? Perché readarraynon leggere findl'output come input standard e inserire quelle stringhe nell'array?
readarray -d '' < <(find your_args -print0)