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