Gawk/Beispiele: Unterschied zwischen den Versionen
Zeile 55: | Zeile 55: | ||
#Gibt Anzahl der Eingabezeilen zurück | #Gibt Anzahl der Eingabezeilen zurück | ||
$ awk 'END {print NR}' | $ awk 'END {print NR}' | ||
---------------------- | |||
10 | 10 | ||
#Zeile Nr.5 zurückgeben | #Zeile Nr.5 zurückgeben | ||
$ awk 'NR == 5' | $ awk 'NR == 5' | ||
---------------------- | |||
A Was war das? | A Was war das? | ||
#Zeilen ausgeben mit mehr als 4 Felder | |||
$ awk 'NF > 4' | |||
---------------------- | |||
1. Hier ist ein Text mit Inhalt | |||
3. Reisig schmeckt am Besten |
Version vom 18. Juni 2020, 12:20 Uhr
AWK ist eine Programmiersprache um Textdateien zu ändern.
Einführung
- AWK kann man aufrufen durch
- awk-Kommando in der Shell-Konsole
- In Shell- oder in awk-Scripte
- awk wartet auf Daten von Eingabeströmen aus Dateien oder aus der Standardeingabe
- awk arbeitet Zeile für Zeile bis zum Dateiende
Syntax & Aufbau
Die allgemeine Syntax lautet:
$ awk 'Programm' Datei oder $ awk -f Programmdatei Datei
Der Aufbau eines awk-Programms:
- Optionaler Anfang(BEGIN), der einmalig ausgeführt wird
- Hauptprogramm aus Anweisungen, das für jede Eingabezeile erneut ausgeführt wird
- Optionales Ende(END), der einmalig ausgeführt wird
Eine Anweisung wiederum:
- hat ein optionales Muster
- gefolgt von einem Kommandoblock in geschweiften Klammern
/Muster/ {Kommando; Kommando; ... }
Ein Beispiel:
BEGIN{ print "Zählen von Eingabezeilen"; zaehler=0; } { zaehler++; } END{ print "Ergebnis: " zaehler; }
Anwendungen
Eine einfache Textdatei:
1. Hier ist ein Text mit Inhalt A Eine Zeile 2. Tim & Struppi A Was war das? B Aktion und Reaktion 3. Reisig schmeckt am Besten A Nein, stimmt nicht B Doch !
Einzeiler-Kommandos
- Gibt Anzahl der Eingabezeilen zurück
$ awk 'END {print NR}' ---------------------- 10
- Zeile Nr.5 zurückgeben
$ awk 'NR == 5' ---------------------- A Was war das?
- Zeilen ausgeben mit mehr als 4 Felder
$ awk 'NF > 4' ---------------------- 1. Hier ist ein Text mit Inhalt 3. Reisig schmeckt am Besten