Bisher hast du mit awk Daten aus Dateien gefiltert und ausgewählt.
Doch oft reicht es nicht, einfach nur Felder auszugeben - du willst die Ergebnisse
formatiert darstellen, sodass sie leichter zu lesen oder weiterzuverarbeiten sind.
In diesem Kapitel lernst du, wie du mit awk
Texte bearbeitest, Ausgaben anpasst und Reports erstellst.
🔹 Einfache Formatierung mit print
Mit
print kannst du Felder getrennt durch Leerzeichen ausgeben.
Beispiel:
awk '{print $1, "-", $3}' users.txt
Ausgabe:
Alice - Berlin
Bob - Hamburg
Charlie - Köln
👉 Du kannst beliebige Trennzeichen (Text oder Symbole) einfügen.
🔹 Ausgabe ohne Leerzeichen
Standardmäßig setzt awk zwischen Variablen ein Leerzeichen.
Mit Komma
, steuerst du die Trennung, mit
String-Verkettung (ohne Komma) kannst du Texte direkt zusammenfügen.
Beispiel:
awk '{print $1 "-" $2 " Jahre"}' users.txt
Ausgabe:
Alice-25 Jahre
Bob-30 Jahre
Charlie-22 Jahre
👉 Nützlich für kurze Labels oder Berichte.
🔹 Formatierte Ausgaben mit printf
Für präzise Formatierungen gibt es
printf (ähnlich wie in C oder Bash).
Beispiel: Namen und Alter in Spalten:
awk '{printf "%-10s %3dn", $1, $2}' users.txt
Ausgabe:
Alice 25
Bob 30
Charlie 22
%-10s → String, linksbündig, 10 Zeichen breit
%3d → Zahl, 3 Zeichen breit
n → Zeilenumbruch
👉 Mit
printf kannst du Tabellen und Reports erstellen.
🔹 Text erweitern oder ändern
Du kannst Ausgaben dynamisch erweitern:
awk '{print "Name:", $1, "| Alter:", $2, "| Stadt:", $3}' users.txt
Ausgabe:
Name: Alice | Alter: 25 | Stadt: Berlin
Name: Bob | Alter: 30 | Stadt: Hamburg
Name: Charlie | Alter: 22 | Stadt: Köln
👉 Damit erstellst du sofort strukturierte Ausgaben.
🔹 Kopfzeilen hinzufügen
Mit einem speziellen Muster kannst du z.B. nur bei der ersten Zeile eine Überschrift einfügen:
awk 'NR==1 {print "Name Alter Stadt"} {print $1, $2, $3}' users.txt
Ausgabe:
Name Alter Stadt
Alice 25 Berlin
Bob 30 Hamburg
Charlie 22 Köln
NR==1 → gilt nur für die erste Zeile (NR = Number of Record).
🔹 Übungen
- Gib die Namen und Alter in folgendem Format aus:
- Formatiere die Ausgabe als Tabelle mit Spaltenbreite 12 für den Namen und 5 für das Alter.
- Füge eine Kopfzeile "Name | Alter | Stadt" hinzu.
- Bonus: Erstelle eine CSV-Datei und formatiere die Ausgabe so, dass die Felder tabellarisch dargestellt werden.
✅ Zusammenfassung
Mit
print kannst du Felder frei kombinieren.
Mit String-Verkettung fügst du Texte flexibel zusammen.
printf erlaubt präzise Formatierungen, z. B. Spaltenbreite, Dezimalstellen.
Mit Bedingungen wie
NR==1 kannst du Kopfzeilen einfügen.
awk eignet sich hervorragend, um
Datenberichte direkt im Terminal zu erstellen.
👉
Im nächsten Kapitel lernst du, wie du mit awk
Berechnungen & Statistiken durchführen kannst – z. B. Summen oder Durchschnittswerte berechnen.
📚 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