Dateizeilen in Bash lesen

Fumbani Banda 30 Januar 2023
  1. Datei zeilenweise in der Bash mit dem Befehl read lesen
  2. Datei zeilenweise lesen in der Bash mit IFS und -r Option
Dateizeilen in Bash lesen

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
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Verwandter Artikel - Bash File