AWK – Basic-Beispiele

AWK – Basic-Beispiele

Werbung

Dieses Kapitel beschreibt einige nützliche AWK-Befehle und die entsprechenden Beispiele. Betrachten Sie eine Textdatei Markierungen.txt, das mit folgendem Inhalt verarbeitet werden soll –

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

Spalte oder Feld drucken

Sie können AWK anweisen, nur bestimmte Spalten aus dem Eingabefeld zu drucken., Das folgende Beispiel zeigt dies –

Example

$ awk '{print $3 "\t" $4}' marks.txt

Beim Ausführen dieses Codes erhalten Sie das folgende Ergebnis −

Output

Physics 80Maths 90Biology 87English 85History 89

In den Dateimarkierungen.txt, die dritte Spalte enthält den Betreff Namen und die vierte Spalte enthält die Markierungen in einem bestimmten Thema erhalten. Lassen Sie uns diese beiden Spalten mit dem Befehl AWK print drucken. Im obigen Beispiel stellen $3 und $4 das dritte und das vierte Feld aus dem Eingabedatensatz dar.

Drucken aller Zeilen

Standardmäßig druckt AWK alle Zeilen, die dem Muster entsprechen.,

Beispiel

$ awk '/a/ {print $0}' marks.txt

Beim Ausführen dieses Codes erhalten Sie das folgende Ergebnis −

Ausgabe

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

Im obigen Beispiel suchen wir nach Formularmuster a. Wenn eine Musterübereinstimmung erfolgreich ist, wird ein Befehl aus dem Body-Block ausgeführt. In Ermangelung eines Body − Blocks wird eine Standardaktion ausgeführt, bei der der Datensatz gedruckt wird. Daher erzeugt der folgende Befehl das gleiche Ergebnis –

Beispiel

$ awk '/a/' marks.txt

Drucken von Spalten nach Muster

Wenn eine Musterübereinstimmung erfolgreich ist, druckt AWK standardmäßig den gesamten Datensatz., Sie können AWK jedoch anweisen, nur bestimmte Felder zu drucken. Das folgende Beispiel druckt beispielsweise das dritte und vierte Feld, wenn eine Musterübereinstimmung erfolgreich ist.

Beispiel

$ awk '/a/ {print $3 "\t" $4}' marks.txt

Beim Ausführen dieses Codes erhalten Sie das folgende Ergebnis −

Ausgabe

Maths 90Biology 87English 85History 89

Spalte in beliebiger Reihenfolge drucken

Sie können Spalten in beliebiger Reihenfolge drucken. Im folgenden Beispiel wird beispielsweise die vierte Spalte gefolgt von der dritten Spalte gedruckt.,

Beispiel

$ awk '/a/ {print $4 "\t" $3}' marks.txt

Beim Ausführen des obigen Codes erhalten Sie das folgende Ergebnis −

Ausgabe

90 Maths87 Biology85 English89 History

Zählen und Drucken übereinstimmender Muster

Lassen Sie uns ein Beispiel sehen, in dem Sie die Anzahl der Zeilen zählen und drucken können, für die eine Musterübereinstimmung erfolgreich war.

Beispiel

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

Beim Ausführen dieses Codes erhalten Sie das folgende Ergebnis −

Ausgabe

Count = 4

In diesem Beispiel erhöhen wir den Wert des Zählers, wenn eine Musterübereinstimmung erfolgreich ist, und drucken diesen Wert im Endblock., Beachten Sie, dass im Gegensatz zu anderen Programmiersprachen vor der Verwendung keine Variable deklariert werden muss.

Drucken von Zeilen mit mehr als 18 Zeichen

Lassen Sie uns nur die Zeilen drucken, die mehr als 18 Zeichen enthalten.

Beispiel

$ awk 'length($0) > 18' marks.txt

Beim Ausführen dieses Codes erhalten Sie das folgende Ergebnis −

Ausgabe

3) Shyam Biology 874) Kedar English 85

AWK bietet eine integrierte Längenfunktion, die die Länge der Zeichenfolge zurückgibt. Die Variable $0 speichert die gesamte Zeile und in Ermangelung eines Body-Blocks wird die Standardaktion ausgeführt, dh die Druckaktion., Wenn also eine Zeile mehr als 18 Zeichen hat, dann ergibt sich der Vergleich wahr und die Zeile wird gedruckt.

<

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.