Ich habe eine Reihe von Pfaden zu Dateien, die jeweils mehrere Textzeilen haben. Ich möchte ein Array erstellen, das mit der ersten Zeile jeder Datei gefüllt ist, die wie folgt verarbeitet wird:
# this.txt first line is [Test this]
# another.txt first line is [Test another]
paths=(
./this/path/this.txt
./another/path/another.txt
)
for i in ${paths[@]}; do
read -r line < $i
lines+=$line
done
Ich habe höchstens einen Wert in meinem Array. Ich kann das gesuchte Array nicht aus der for-Schleife herausholen. Ich habe viele Variationen ausprobiert und es fällt mir schwer herauszufinden, wo ich falsch liege.
quelle
In Bash können Sie Zeilen auch direkt in ein Array einlesen. Wenn Sie die aktuelle Array-Länge
${#lines[@]}
als Einfügeindex auswählen , können Sie sie anhängen:Synopsis-Auszug
quelle