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