So lesen Sie Spaltendaten aus einer Textdatei in einem Bash -Shell -Skript

So lesen Sie Spaltendaten aus einer Textdatei in einem Bash -Shell -Skript

Eine der Aufgaben, die mit einem Bash -Shell -Skript ausgeführt werden können, ist das Lesen von Daten aus einer Textdatei und verarbeitet sie. In diesem Artikel werden wir untersuchen.

So lesen Sie Spaltendaten aus einer Textdatei in einem Bash -Shell -Skript

Das Lesen spezifischer Datenspalten aus einer Textdatei in einem Bash -Shell -Skript wird in verschiedenen Anwendungen wie in automatisierten sich wiederholenden Aufgaben, Softwareentwicklung, Textverwaltung und vielem mehr zur Verfügung gestellt, nur um diese jeweilige Spalte zu lesen. Weitere Abbildungen unter der Syntax, die man befolgen kann, um eine Spalte aus einer beliebigen Textdatei zu lesen:

#!/Bin/Bash
Während der Lesenzeile; Tun
# Verwenden Sie awk, um das dritte Feld (den Namen) aus jeder Zeile zu extrahieren
= $ (echo $ line | awk 'print $')
# Drucken Sie den Namen
echo $
Erledigt < .txt


1: Das Skript beginnt mit der Angabe des Shell -Interpreters, der mit der Shebang -Linie verwendet werden soll #!/Bin/Bash.

2: Die while -Schleife liest den Inhalt der Textdateizeile nach Zeile mit dem Befehl read und für jede LEAD -Zeile, die, die, die awk Der Befehl wird verwendet, um das Feld (den Namen) aus der Zeile zu extrahieren. Der Befehl awk verwendet das Muster print $ So wählen Sie das Feld aus, das dann im variablen Namen gespeichert wird.

3: Schließlich druckt das Skript den Wert der Namensvariablen mit dem Echo -Befehl und dieser Vorgang wird für jede Zeile in der Datei wiederholt, bis keine Zeilen mehr zum Lesen sind.

Für das Verständnis des Lesers habe ich die obige Syntax verwendet, um eine Spalte aus der Textdatei zu lesen, und unten ist der Code dafür:

#!/Bin/Bash
Während der Lesenzeile; Tun
# Verwenden Sie awk, um das zweite Feld aus jeder Zeile zu extrahieren
info = $ (echo $ line | awk 'print $ 3')
# Drucken Sie das Alter
Echo $ Info
Erledigt < company_details.txt


Hier im Code habe ich die dritte Spalte jeder Zeile der Textdatei mit dem Namen Company -Details gelesen. Der Befehl awk wird verwendet, um das dritte Feld (den Namen) aus der Zeile zu extrahieren. Der Befehl awk verwendet das Muster drucken $ 3, um das dritte Feld auszuwählen. Hier ist die Ausgabe meines Beispielcode:


Unten finden Sie die Textdatei, die ich zu Demonstrationszwecken erstellt habe:

So lesen Sie mehrere Spalten einer Textdatei im Bash -Shell -Skript

Wenn Sie mehr als eine Spalte oder eine Datei lesen möchten, müssen Sie nur die Spaltennummer hinzufügen, und der Rest ist der gleiche. Hier ist der Code für das Lesen von mehr als einer Spalte der Textdatei:

#!/Bin/Bash
# Diese Zeile gibt an, dass das Skript von der Bash -Shell interpretiert werden sollte.
# Durchqueren Sie jede Zeile der Datei durch
Während der Lesenzeile; Tun
# Verwenden Sie awk, um das dritte Feld (den Namen) aus jeder Zeile zu extrahieren
info = $ (echo $ line | awk 'print $ 1, $ 2, $ 3')
# Drucken Sie den Namen
Echo $ Info
Erledigt < company_details.txt


Unten finden Sie die Ausgabe des Code, der alle drei Spalten in der Textdatei liest:

Abschluss

Die Bash-Skripte sind ein vielseitiges Tool, mit dem verschiedene Aufgaben automatisiert werden können, insbesondere wenn es um Unix-basierte Systeme geht. Durch Kombinieren der Befehle while -Schleifen und andere Shell können Sie die Spaltendaten einfach aus einer Textdatei lesen und verschiedene Operationen mit den Daten ausführen.