Bash während der Lesenzeile

Bash während der Lesenzeile
Wenn Sie an Bash -Skripten arbeiten, müssen Sie manchmal eine Dateizeile für Zeile lesen. Lassen Sie uns mit einem Beispiel erklären. Sie haben einige Daten in einer Textdatei, die mithilfe eines Skripts ausgeführt oder verarbeitet werden sollten. Das Ausführen eines Bash -Skripts zur Verarbeitung einer Textdatei ist also sehr unterschiedlich. Sie müssen einer bestimmten Syntax folgen, um eine Dateizeile für Zeile zu lesen. Dieser Artikel hilft Ihnen dabei, eine Zeile aus einer Datei mit der while -Schleife in Bash zu lesen.

Grundlegende Syntax von While Read Line

Die folgende Syntax wird für Bash -Shell verwendet, um eine Datei mit der while -Loop zu lesen:

Während der Lektüre -r -Linie;
Tun
echo "$ line";
Erledigt < input.file

Die Option '-r' in der oben genannten Syntax, die an den Befehl gelesen wurde. Die Option 'Input_file' hat den Namen Ihrer Datei dargestellt, auf den Sie zugreifen möchten, indem Sie den Befehl "Read" verwenden.

Das interne Feldtrennzeichen wurde als abgekürzt Ifs Kann verwendet werden, bevor der Befehl Leseauftrag auf die Null -Zeichenfolge eingestellt ist, die verhindert,.

während ifs = read -r -Linie;
Tun
echo $ line;
Erledigt < input.file

Öffnen Sie das Terminal mit 'Strg + Alt + T' Verknüpfung und dann die folgenden Befehle darauf ausführen.

Beispiel Nr. 1: Dateilesezeile für Zeile für Zeile

Nehmen wir ein Beispiel, in dem angenommen wird, wir haben eine Datei mit dem Namen 'OS.txt' enthält die Namen aller wichtigen Linux -Verteilungen. Wenn Sie eine Datei lesen möchten, ohne die zu verwenden 'Katze' Befehl dann zu diesem Zweck können Sie den folgenden Befehl ausführen, um die bestimmte Aufgabe auszuführen. Wir werden die while -Schleife verwenden, die jede Zeile aus der Datei liest 'OS.txt' speichert den Inhalt in jedem Schritt in einer Variablen $ line, die Sie später anzeigen können.

Fügen Sie die folgenden Namen von Linux -Verteilungen in die ein 'OS.txt'

Centos
Ubuntu
Debian
Linuxmint
Während der Lesenzeile;
Tun
echo $ line;
Erledigt < OS.txt


Aus dem obigen Befehl erhalten Sie die folgende Antwort auf das Terminalfenster:

Beispiel Nr. 2: Lesen Sie die Datei mithilfe des Bash -Skripts

Erstellen Sie eine Bash-Datei und fügen Sie den unten erwähnten Code in dieser Datei hinzu, um den Dateiinhalt zu lesen. Sie können die vorherige Textdatei in eine neue Variable speichern $ Dateiname und variabel $ n wird verwendet, um den Wert jeder Zeile zu halten. Mit der while -Schleife lesen wir jetzt jede Zeile aus einer Datei mit einer bestimmten Zeilennummer aus.

#!/Bin/Bash
Dateiname = 'OS.txt'
n = 1
Während der Lesenzeile;
Tun
# Für Lesen Sie jede Zeile
Echo "Betriebssystemverteilungslinie Nr. $ n: $ line "
n = $ ((n+1))
Erledigt < $filename

Speichern Sie die Datei mit einem Namen 'Osinfo.Sch' Geben Sie den folgenden Befehl in das Terminal ein, um das obige Bash -Skript auszuführen.

$ bash osinfo.Sch

Führen Sie nun den CAT -Befehl aus, um den Originaldateiinhalt anzuzeigen.

$ cat os.txt

Alternative Methode zum Lesen von Dateien

Verwenden Sie den Dateinamen aus einem Befehl

In einer Bash -Datei müssen Sie das folgende Codeskript hinzufügen. In diesem Skript müssen wir einen Dateinamen als Argument nehmen. Erstens wird der Wert eines Arguments von a gelesen $ 1 Variable mit einem Dateinamen zum Lesen. Es wird überprüft.

#!/Bin/Bash
Dateiname = $ 1
Wenn [[ ! -f $ Dateiname]]; Dann
Echo "Fehler, Sie müssen einen Dateinamen als Befehlszeilenparameter eingeben."
Ausfahrt
fi
Während der Lesenzeile; Tun
# Lesen Sie jede Zeile
Echo $ line
Erledigt < $filename

Speichern Sie das obige Skript mit den Namen 'Zeile lesen.Sch' Führen Sie den folgenden Befehl auf dem Terminal aus, um das oben genannte Skript auszuführen:

$ Bash Readline.Sh os.txt

Sie können sehen, dass der Parameter als verwendet wurde als $ Dateiname, und Lesen Sie Zeile nach Linie mit dem Während der Lesenzeile Syntax aus dem in der Befehlszeile gelieferten Parameter.

Abschluss

In diesem Artikel haben wir besprochen. Wir haben verschiedene Methoden mithilfe des Bash -Skripts implementiert, oder Sie können einfach eine Textdatei verwenden, um eine Dateizeile für Zeilenaufgabe durchzuführen. Wenn Sie daran interessiert sind, weitere Beispiele zu erfahren, können Sie auch mit der oben genannten Syntax auf Ihrem System ausführen. Ich hoffe, Sie haben dieses Tutorial genossen und würden für Sie einzigartig. Lassen Sie uns im Falle eines Fehlers wissen.