awk kann ebenfalls von der Kommandozeile aus oder per Skriptdatei zur Bearbeitung einer oder mehrerer Dateien aufgerufen werden:
$awk 'instructions' inputfiles $awk -f scriptfile inputfiles
awk wandelt jede Zeile in einen Datensatz um, mit Leerzeichen oder Tabulatoren als Feldbegrenzer. Dies erlaubt die Bezugnahme auf diese Felder sowohl in Mustern als auch Anweisungen. $0 repräsentiert dabei den gesamten Datensatz (= Zeile), $1, $2, … verweisen auf die einzelnen Felder der Eingabezeile.
Ist kein Muster vorgegeben, wird das Default-Muster („alles“) verwendet. Das folgende Beispiel
$awk '{ print $1}' phonelist.txt
erzeugt diese Ausgabe:
John Jane Jimmy
Ist keine Anweisung angegeben, ist die Default-Anweisung print. So liefert
$awk '/Jane/' phonelist.txt
die Ausgabe
Jane Doe, 100-555-2222, 100-555-1113, janedoe@another.com
Richtig interessant wird es aber erst, wenn man sowohl Muster als auch Anweisungen verwendet. Mit der folgenden Zeile können wir z.B. Janes private Telefon-Nummer ausdrucken lassen:
$awk '/jane/ { print $3}' phonelist
Hier das Ergebnis:
100-555-2222
Den Feldbegrenzer kann man mit der Option -F beliebig ändern. Wir benutzen ein Komma, da unsere Telefonliste eine CSV-Datei ist.
Dieser Befehl:
$awk -F, '{print $1}' phonelist.txt
liefert uns alle Namen:
John Doe Jane Doe Jimmy Dean
Wenn wir die Ausgabe im Format Nachname, Vorname wünschen, können wir diese Anweisung verwenden:
$awk -F, '{print $2 $1}' phonelist.txt
Mit dem Ergebnis:
Doe, John Doe, Jane Dean, Jimmy
Soll jedes Feld in einer eigenen Zeile gedrucken werden, können wir ein Semikolon verwenden, um die print-Anweisungen voneinander zu trennen:
$awk -F, '{ print $1; print $2; print $3; print $4 }' phonelist.txt
Und so sieht das Ergebnis aus:
John Doe 100-555-1111 100-555-1112 johndoe@some.com Jane Doe 100-555-2222 100-555-1113 janedoe@another.com Jimmy Dean 101-555-1111 101-555-2222 deanj@jimmys.com
Um es noch einmal auf den Punkt zu bringen: sed wird vor allem zur Änderung von Daten verwandt, awk zu deren (Neu-)Formatierung. Für fortgeschrittenere Konzepte der sed- und awk-Programmierung steht eine Unmenge an Informationen zur Verfügung. Ein guter Ausgangspunkt sind dabei die FAQs zu sed und awk.
Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.
Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.
Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.
Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…
Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…
Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.