AWK Commands Cheat Sheet

Tags: linux cheat-sheet

Inhaltsverzeichnis

AWK

AWK ist ein leistungsstarkes Tool zur Textverarbeitung unter Unix/Linux. Es ermöglicht das einfache Filtern, Bearbeiten und Umwandeln von Daten, zum Beispiel aus Dateien oder Befehlsausgaben.

AWK-Befehle und ihre Bedeutung

Nr. Befehl Beschreibung
1 awk '{print $1}' test.txt Gibt die erste Spalte jeder Zeile aus.
2 awk -F':' '{print $1, $3, $4}' /etc/passwd Verwendet : als Trennzeichen und gibt Spalte 1, 3 und 4 aus.
3 awk '$3 > 100' test.txt Zeigt nur Zeilen, in denen die dritte Spalte größer als 100 ist.
4 awk 'BEGIN {print "Header"} {print $0} END {print "Footer"}' test.txt Fügt vor den Daten “Header” und danach “Footer” hinzu.
5 awk 'NR==1 {print}' test.txt Gibt nur die erste Zeile der Datei aus.
6 awk 'NF > 8' test.txt Zeigt Zeilen mit mehr als 8 Spalten an.
7 awk '$2 ~ /pattern/' test.txt Gibt Zeilen aus, in denen die zweite Spalte “pattern” enthält.
8 awk 'length($0) > 30' test.txt Zeigt nur Zeilen mit mehr als 30 Zeichen.
9 awk '{sum += $1} END {print sum}' test.txt Addiert alle Werte der ersten Spalte und gibt die Summe aus.
10 awk '!seen[$0]++' test.txt Entfernt doppelte Zeilen und gibt nur eindeutige aus.
11 awk sub("alt", "neu", $2) Ersetzt „alt“ durch „neu“ in Spalte 2 (nur erstes Vorkommen)
12 awk gsub("alt", "neu", $2) Ersetzt „alt“ überall in Spalte 2

In AWK steht $0 für die gesamte Zeile.

  • $1, $2, $3, … → einzelne Spalten (Felder)
  • $0 → die komplette Zeile

Beispiele

Ich habe eine Datei namens test.txt erstellt, die folgenden Inhalt enthält: Diese Zeile existiert nur für die Show

Befehl:

awk 'BEGIN {print "Header"} {print $0} END {print "Footer"}' test.txt
Header
Diese Zeile existiert nur für die Show
Footer

Befehl:

awk 'sub("nur", "nicht")' test.txt
Diese Zeile existiert nicht für die Show