So lesen Sie Datei Zeile für Zeile im Bash-Skript
Wie würden Sie ein Bash-Skript schreiben,das eine Textdatei zeilenweise verarbeiten kann? Zuerst benötigen Sie eine Syntax und einen Ansatz, um die Datei Zeile für Zeile zu lesen. Die Methoden für diesen Ansatz werden in diesem tutorial vorgestellt.
Angenommen, Sie haben eine Datei mit dem Namen company.txt, das die Firmennamen enthält. Diese Datei enthält den folgenden Inhalt.
Samsung
Nokia
LG
Symphony
iphone
Beispiel -1: Lesen von Dateiinhalten über die Befehlszeile
Angenommen, Sie möchten die Datei lesen, Unternehmen.txt, Zeile für Zeile aus der Befehlszeile ohne ‚ cat ‚ Befehl. Führen Sie den folgenden Befehl aus, um die Aufgabe auszuführen. while loop liest jede Zeile aus der Datei company.txt in jedem Schritt, und speichern Sie den Inhalt der Zeile in $line-variable, die später gedruckt werden.
Beispiel -2: Lesen des Dateiinhalts mithilfe des Skripts
Erstellen Sie eine Bash-Datei und fügen Sie den folgenden Code hinzu, um den Inhalt einer bestimmten Datei zu lesen. Hier wird ein vorhandener Dateiname in der Variablen $filename gespeichert und die Variable $n wird verwendet, um den Wert der Zeilennummer dieser Datei beizubehalten. Wie im vorherigen Beispiel wird while loop verwendet, um diese Datei mit der Zeilennummer zu lesen.
filename=“company.txt“
n=1
while read line; do
# Lesen jede Zeile
echo „Zeile Nicht., $n : $line“
n=$((n+1))
fertig < $filename
den folgenden Befehl Ausführen, um das Skript auszuführen.
Führen Sie den Befehl ‚cat‘ mit company aus.txt-Datei, um den ursprünglichen Inhalt des Unternehmens anzuzeigen.txt-Datei.
Beispiel -3: Übergeben des Dateinamens über die Befehlszeile und Lesen der Datei
Erstellen Sie eine Bash-Datei und fügen Sie das folgende Skript hinzu., Dieses Skript übernimmt den Dateinamen aus dem Befehlszeilenargument. Der erste Argumentwert wird von der Variablen $1 gelesen, die den Dateinamen zum Lesen enthält. Wenn die Datei am aktuellen Speicherort vorhanden ist, liest while loop die Datei Zeile für Zeile wie im vorherigen Beispiel und druckt den Dateiinhalt.
filename=$1
while read line; do
# Lesen jede Zeile
echo $line
fertig < $filename
Führen Sie das obige Skript mit dem Mitarbeiter.txt-Datei als Argumentwert. Die Ausgabe zeigt den Inhalt des Mitarbeiters an.,txt-Datei durch Entfernen von zusätzlichem Speicherplatz. Sie können den ursprünglichen Inhalt des Mitarbeiters zeigen.txt-Datei mit dem Befehl‘ cat‘.
$ cat Mitarbeiters.txt
Beispiel – 4: Datei lesen, indem Backslash escape weggelassen wird
Wenn Sie jede Zeile einer Datei lesen möchten, indem Sie backslash escape weglassen, müssen Sie die Option ‚-r‘ mit dem Befehl read in der while-Schleife verwenden.
while read -r line; do
# Lesen jede Zeile
echo $line
fertig < company2.txt
Erstellen Sie eine Datei mit dem Namen company2.txt mit Backslash und führen Sie den folgenden Befehl aus, um das Skript auszuführen. Die Ausgabe zeigt den Dateiinhalt ohne Backslash an.
Sie benötigen zum Lesen der Datei für viele Programmier-Zwecke. Sie können beispielsweise bestimmte Inhalte einfach aus einer beliebigen Datei suchen oder abgleichen, indem Sie jede Zeile separat lesen., Es ist also eine wesentliche Aufgabe für jede Programmierung. In diesem Tutorial werden einige einfache Beispiele für das Lesen von Dateien im Bash-Skript gezeigt. Diese helfen Ihnen, die Idee zu bekommen, Dateiinhalt Zeile für Zeile mit while Schleife in Bash-Skript zu lesen und in Ihrem Skript effizienter anzuwenden. Für weitere Informationen sehen Sie das Video!