Dateizeilen in Bash lesen
-
Datei zeilenweise in der Bash mit dem Befehl
readlesen -
Datei zeilenweise lesen in der Bash mit
IFSund-rOption
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
