Dateizeilen in Bash lesen
-
Datei zeilenweise in der Bash mit dem Befehl
read
lesen -
Datei zeilenweise lesen in der Bash mit
IFS
und-r
Option
Dieses Tutorial liest eine Datei Zeile für Zeile in einem Bash-Skript mit dem Befehl read
.
Hier ist der Inhalt der Textdatei, die wir verwenden werden.
john\n ,
james\n ,
joe,
jack,
jill
Datei zeilenweise in der Bash mit dem Befehl read
lesen
Die Datei names.txt
wird in die Schleife while
umgeleitet. Der Befehl read
verarbeitet jede Zeile in der Datei und weist sie der Variablen p
zu, und der Befehl echo
zeigt sie an. Sobald alle Zeilen verarbeitet sind, stoppt die while
-Schleife. Der Befehl read
ignoriert die führenden Leerzeichen, was in einigen Fällen irreführend sein kann.
printf "Names\n"
while read p;
do
echo "$p"
done <names.txt
Ausgabe:
Names
johnn ,
jamesn ,
joe,
jack,
jill
Datei zeilenweise lesen in der Bash mit IFS
und -r
Option
Standardmäßig entfernt der Befehl read
alle führenden Whitespaces und interpretiert den Backslash als Escape-Zeichen. Wir fügen die Option -r
hinzu, um Backslash-Escaping zu deaktivieren und das Trimmen von Leerzeichen zu deaktivieren, sodass der interne Feldtrenner (IFS) gelöscht wird.
printf "Names\n"
while IFS= read -r line; do
printf '%s\n' "$line"
done < names.txt
Ausgabe:
Names
john\n ,
james\n ,
joe,
jack,
jill