Website-Suche

So drucken Sie Felder und Spalten mit awk unter Linux


Awk ist ein leistungsstarkes Textverarbeitungstool, das eine effiziente Manipulation und Extraktion von Informationen aus Dateien ermöglicht, insbesondere für den Umgang mit strukturierten Daten wie Protokolldateien, CSV-Dateien und mehr.

Eine der vielseitigsten Funktionen ist die Möglichkeit, bestimmte Felder und Spalten aus einer Datei basierend auf vordefinierten Trennzeichen zu drucken.

In diesem Artikel werden wir untersuchen, wie Sie Awk zum Drucken von Feldern und Spalten nutzen können, und praktische Beispiele und Erklärungen geben, um die Wirksamkeit zu demonstrieren.

In Awk bezieht sich ein "Feld" auf ein bestimmtes Textsegment innerhalb einer Zeile, das durch ein vordefiniertes Trennzeichen wie ein Leerzeichen, einen Tabulator oder ein Komma begrenzt wird. Jedem Segment wird eine Feldnummer zugewiesen, wobei das erste Feld 1 $ ist, das zweite 2 $ usw.

In ähnlicher Weise stellt eine "Spalte" eine vertikale Gruppierung von Feldern über mehrere Zeilen dar. Durch die Nutzung der Funktionen von Awk können wir diese Felder und Spalten selektiv drucken oder bearbeiten, um wertvolle Informationen aus unseren Daten zu extrahieren.

Es ist gut zu wissen, dass Awk die Eingabezeilen, die ihm zur Verfügung gestellt werden, automatisch in Felder unterteilt, und ein Feld kann als ein Satz von Zeichen definiert werden, die durch ein internes Feldtrennzeichen von anderen Feldern getrennt sind.

Wenn Sie mit Unix/Linux vertraut sind oder Bash-Shell-Programmierung betreiben, sollten Sie wissen, was die interne Feldtrennzeichenvariable (IFS) ist. Die Standard-IFS in Awk sind Tabulator und Leerzeichen.

Um diese Bearbeitung von Awk-Feldern besser zu verstehen, werfen wir einen Blick auf die folgenden Beispiele:

Verwenden Sie awk, um Felder aus einer Datei zu drucken

Um bestimmte Felder aus einer Datei mit Awk zu drucken, können Sie die Anweisung "print" zusammen mit den gewünschten Feldvariablen verwenden.

Um beispielsweise das erste, zweite und dritte Feld einer Datei durch ein Komma getrennt zu drucken, können wir den folgenden Befehl verwenden:

awk '{print $1 "," $2 "," $3}' tecmintinfo.txt

Im obigen Befehl können Sie sehen, dass die Zeichen aus den ersten drei Feldern basierend auf dem definierten IFS gedruckt werden, der Leerzeichen ist:

  • Auf das erste Feld, das "TecMint.com" ist, wird mit $1 zugegriffen.
  • Auf das zweite Feld, das "is" ist, wird mit $2 zugegriffen.
  • Auf das dritte Feld, das "the " ist, wird mit $3 zugegriffen.

Eine wichtige Sache, die Sie beachten und immer beachten sollten, ist, dass sich die Verwendung von ($) in Awk von der Verwendung in Shell-Skripten unterscheidet.

Bei der Shell-Skripterstellung wird ($) verwendet, um auf den Wert von Variablen zuzugreifen, während bei Awk ($) nur für den Zugriff auf den Inhalt eines Feldes verwendet wird, nicht für den Zugriff auf den Wert von Variablen.

Verwenden von awk zum Drucken von Spalten aus einer Datei

Um ganze Spalten aus einer Datei zu drucken, können wir einen ähnlichen Ansatz verwenden, indem wir die gewünschten Felder in der "print"-Anweisung angeben. Dieses Mal betrachten wir jedoch mehrere Zeilen, um die Spalte gemeinsam darzustellen.

Um beispielsweise die zweite und dritte Spalte einer Datei zu drucken, können wir den folgenden Befehl verwenden:

awk '//{print $2, $3 }' my_shopping.txt

Awk verfügt auch über einen printf-Befehl, der Ihnen hilft, Ihre Ausgabe zu formatieren, ist eine gute Möglichkeit, da Sie sehen können, dass die obige Ausgabe nicht klar genug ist.

Verwenden von printf zum Formatieren der Ausgabe der Item_Name und Unit_Price:

awk '//{printf "%-10s %s\n",$2, $3 }' my_shopping.txt

Verwenden von awk zum Drucken von Feld- und Spaltenbereichen aus einer Datei

Awk ermöglicht es uns auch, Bereiche von Feldern oder Spalten mit dem Operator ":" zu definieren. Um beispielsweise die Felder 2 bis 4 aus einer Datei zu drucken, können wir den folgenden Befehl verwenden.

awk '{print $2 ":" $4}' filename

Zusammenfassung

Die Feldbearbeitung ist sehr wichtig, wenn Sie Awk verwenden, um Text oder Zeichenfolgen zu filtern, da sie Ihnen helfen, bestimmte Daten in Spalten in einer Liste zu erhalten. Und denken Sie immer daran, dass sich die Verwendung des Operators ($) in Awk von der im Shell-Scripting unterscheidet.

Für diejenigen, die eine umfassende Ressource suchen, haben wir alle Artikel der Awk-Serie in einem Buch zusammengestellt, das 13 Kapitel umfasst und sich über 41 Seiten erstreckt und sowohl die grundlegende als auch die fortgeschrittene Verwendung von Awk mit praktischen Beispielen abdeckt.

ProduktnamePreisKaufen
E-Book: Einführung in den AWK-Leitfaden für Anfänger8,99 $[Jetzt kaufen]

Ich hoffe, der Artikel war hilfreich für Sie und für zusätzliche Informationen oder Fragen können Sie einen Kommentar im Kommentarbereich posten.

Verwandte Artikel: