Ich versuche, den Inhalt einer TXT-Datei in zwei Gruppen von Arrays in bash zu speichern. Die Datei ist eine Liste von Eigenschaften für bestimmte Datendateien, die durch vertikale Balken (|) voneinander getrennt sind. Bisher habe ich einen Code geschrieben, der die Datei liest und jede Datenzeile einzeln ausgibt, gefolgt von den jeweiligen Abschnitten der Zeile.Speichern von Daten in mehreren Arrays (Bash)
#prints line of text and then separated version
while IFS='' read -r line || [[ -n "$line" ]]
do
echo "Text read from file: $line"
words=$(echo $line | tr "|" "\n")
for tests in $words
do
echo "> $tests"
done
done < "$1"
Beispiel Ausgang:
Text read from file: this|is|data|in|a|file
> this
> is
> data
> in
> a
> file
Text read from file: another|example|of|data
> another
> example
> of
> data
Gibt es eine Möglichkeit für mich jede einzelne Zeile von Daten in einem Array zu speichern, und anschließend den zerkleinerten Teile davon in einem anderen? Ich dachte, dies wäre möglich mit einer Schleife, aber ich bin verwirrt von Arrays mit bash (newbie).
Sie könnten darüber alles schief gehen - siehe [warum-ist-mit-a-Shell-Loop-to-Process-Text-betrachtet -bad-Praxis] (https://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice). –