Ich versuche, mit Dateien nach Dateien zu suchen findund diese Dateien in ein Bash-Array zu legen, damit ich andere Operationen an ihnen ausführen kann (z . B. lsoder grepsie). Aber ich kann nicht herausfinden, warum readarraydie findAusgabe nicht gelesen wird, wenn sie in sie geleitet wird.
Angenommen, ich habe zwei Dateien im aktuellen Verzeichnis file1.txtund file2.txt. Die findAusgabe ist also wie folgt:
$ find . -name "file*"
./file1.txt
./file2.txt
Also möchte ich das in ein Array leiten, dessen zwei Elemente die Zeichenfolgen sind "./file1.txt"und "./file2.txt"(natürlich ohne Anführungszeichen).
Ich habe dies unter anderem versucht:
$ declare -a FILES
$ find . -name "file*" | readarray FILES
$ echo "${FILES[@]}"; echo "${#FILES[@]}"
0
Wie Sie der echoAusgabe entnehmen können, ist mein Array leer.
Was genau mache ich hier falsch? Warum wird die Ausgabe nicht als Standardeingabe readarraygelesen findund diese Zeichenfolgen in das Array eingefügt?
readarray -d '' < <(find your_args -print0)