Gawk/Beispiele: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 42: Zeile 42:
Eine einfache Textdatei:
Eine einfache Textdatei:
  1. Hier ist ein Text mit Inhalt
  1. Hier ist ein Text mit Inhalt
  A Eine Zeile
  A Eine Zeile
   
   
  2. Tim & Struppi
  2. Tim & Struppi
  A Was war das?
  A Was war das?
  B Aktion und Reaktion
  B Aktion und Reaktion
   
   
  3. Reisig schmeckt am Besten
  3. Reisig schmeckt am Besten
  A Nein, stimmt nicht
  A Nein, stimmt nicht
  B Doch !
  B Doch !
 
===Einzeiler-Kommandos===
#Gibt Anzahl der Eingabezeilen zurück
$ awk 'END {print NR}'
 
10
 
#5. Zeile zurückgeben
$ awk 'NR == 5'
 
A Was war das?

Version vom 18. Juni 2020, 13:12 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:

  1. Optionaler Anfang(BEGIN), der einmalig ausgeführt wird
  2. Hauptprogramm aus Anweisungen, das für jede Eingabezeile erneut ausgeführt wird
  3. Optionales Ende(END), der einmalig ausgeführt wird

Eine Anweisung wiederum:

  1. hat ein optionales Muster
  2. 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

  1. Gibt Anzahl der Eingabezeilen zurück
$ awk 'END {print NR}'
10
  1. 5. Zeile zurückgeben
$ awk 'NR == 5'
A Was war das?