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 %3d\n", $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