Das Herzstück von awk ist die Fähigkeit, Zeilen in Felder zu zerlegen.
Damit unterscheidet sich awk von Tools wie sed
oder grep
, die Texte meist nur zeilenweise bearbeiten.
In diesem Kapitel lernst du, wie awk Daten in Zeilen und Spalten verarbeitet – die Grundlage für alle weiteren Kapitel.
🔹 Wie awk Daten liest
awk liest eine Datei Zeile für Zeile.
Jede Zeile wird standardmäßig anhand von Leerzeichen oder Tabulatoren in Felder aufgeteilt.
Die Felder kannst du mit $1
, $2
, $3
, … ansprechen.
Die ganze Zeile erreichst du mit $0
.
👉 Damit wird Text zu strukturierten Daten – ideal für Logs, CSVs oder Konfigurationsdateien.
🔹 Ein erstes Beispiel
Datei users.txt
:
Alice 25 Berlin Bob 30 Hamburg Charlie 22 Köln
Mit awk kannst du die erste Spalte (Namen) ausgeben:
awk '{print $1}' users.txt
Ausgabe:
Alice Bob Charlie
Die zweite Spate (Alter):
awk '{print $2}' users.txt
Ausgabe:
25 30 22
Die dritte Spalte (Stadt):
awk '{print $3}' users.txt
👉 Schon mit {print $…}
kannst du gezielt Daten aus Spalten auslesen.
🔹 Mehrere Felder kombinieren
Du kannst auch mehrere Felder ausgeben – zum Beispiel Name + Stadt:
awk '{print $1, $3}' users.txt
Ausgabe:
Alice Berlin Bob Hamburg Charlie Köln
👉 awk setzt die Felder dabei standardmäßig mit einem Leerzeichen auseinander.
🔹 Ganze Zeilen ausgeben
Willst du die komplette Zeile ausgeben:
awk '{print $0}' users.txt
Ausgabe:
Alice 25 Berlin Bob 30 Hamburg Charlie 22 Köln
👉 $0
steht immer für die gesamte Zeile.
🔹 Feldtrennzeichen ändern
Standardmäßig ist das Whitespace (Leerzeichen, Tab) das Trennzeichen.
Mit der Option -F
kannst du ein anderes Trennzeichen setzen.
Beispiel: CSV-Datei daten.csv
:
Alice,25,Berlin Bob,30,Hamburg Charlie,22,Köln
Befehl:
awk -F, '{print $1, $3}' daten.csv
Ausgabe:
Alice Berlin Bob Hamburg Charlie Köln
👉 Mit -F
kannst du awk für beliebige Textformate nutzen.
🔹 Übung
- Erstelle eine Datei freunde.txt mit folgendem Inhalt:
Max 28 München Lisa 32 Stuttgart Tom 24 Dresden
- Gib nur die Namen aus
($1)
. - Gib nur die Städte aus
($3)
. - Kombiniere Name + Alter
($1, $2)
.
Bonus: Erstelle eine CSV-Datei mit ,
als Trennzeichen und verwende awk -F
, zum Auslesen.
✅ Zusammenfassung
- awk zerlegt jede Zeile in Felder.
- Felder werden mit
$1
,$2
, … angesprochen, die ganze Zeile mit$0
. - Standard-Trennzeichen: Leerzeichen und Tabs.
- Mit
-F
kannst du beliebige Trennzeichen festlegen (z. B.,
für CSV). - Schon mit einfachen
print
-Befehlen kannst du Daten flexibel auswerten.
👉 Im nächsten Kapitel lernst du, wie du mit Muster & Bedingungen in awk nur bestimmte Zeilen auswählst – z. B. alle Nutzer über 25 Jahre.
📚 Inhaltsverzeichnis
👉 awk Kapitel 1: Felder & Zeilen verstehen
👉 awk Kapitel 2: Muster & Bedingungen in awk
👉 awk Kapitel 3: Textbearbeitung & Formatierung mit awk
👉 awk Kapitel 4: Berechnungen & Statistiken mit awk
👉 awk Kapitel 5: Eigene awk-Skripte schreiben
👉 awk Kapitel 6: Praxisprojekt – Webserver-Logs analysieren mit awk
⭐ Bonus-Kapitel
👉 awk Bonus 1: Unterschiede & Gemeinsamkeiten von sed und awk
👉 awk Bonus 2: Textbereinigung mit sed, Datenanalyse mit awk
👉 awk Bonus 3: Kombinieren in einer Pipeline – sed & awk zusammen einsetzen
👉 awk Bonus 4: Praxisprojekt – Logdateien filtern, bereinigen und auswerten
👉 awk Bonus 5: Profi-Tricks – Reguläre Ausdrücke für sed & awk im Zusammenspiel