Übersicht
Die `print`-Anweisung in `awk` wird verwendet, um extrahierte Daten aus Eingabedatensätzen (Zeilen) an die Standardausgabe zu senden. Sie können Daten nach Feldern (Spalten) auswählen, mehrere Felder kombinieren, um sie auszugeben, und die Ausgabe basierend auf Bedingungen steuern. `print` ist eine der grundlegendsten Aktionen in `awk`-Skripten.
Hauptmerkmale
Die Kernfunktionen von `awk print` sind wie folgt:
- Ausgabe ganzer Zeilen oder bestimmter Felder
- Verwendung von integrierten Variablen (NR, NF, FS, RS usw.)
- Kombination von Zeichenketten und Feldern zur Ausgabe
- Unterstützung für bedingte Ausgabe
- Fügt standardmäßig nach jeder Ausgabe einen Zeilenumbruch hinzu
Anwendungsbeispiele
Verschiedene Beispiele für die Verwendung der `print`-Anweisung in `awk`. Angenommen, die Beispieldatei `data.txt` sieht wie folgt aus: `apple 10 red banana 20 yellow orange 15 orange`
Ausgabe ganzer Zeilen
awk '{print}' data.txt
Gibt alle Zeilen der Eingabedatei unverändert aus.
Ausgabe des ersten Feldes
awk '{print $1}' data.txt
Gibt nur das erste Feld ($1) jeder Zeile aus.
Kombination mehrerer Felder und Zeichenketten zur Ausgabe
awk '{print "Item:", $1, "Color:", $3}' data.txt
Gibt das erste und dritte Feld durch Kommas getrennt aus und fügt eine benutzerdefinierte Zeichenkette hinzu.
Ausgabe bei Erfüllung einer bestimmten Bedingung
awk '$2 > 15 {print}' data.txt
Gibt nur die Zeilen aus, deren zweites Feld ($2) größer als 15 ist.
Ausgabe des letzten Feldes
awk '{print $NF}' data.txt
Gibt das letzte Feld ($NF) jeder Zeile aus. NF ist eine integrierte Variable, die die Gesamtzahl der Felder in der aktuellen Zeile angibt.
Ausgabe nach Änderung des Feldtrennzeichens
echo "fruit,100,red\nbanana,200,yellow" | awk -F',' '{print $1, $2}'
Legt das Eingabefeldtrennzeichen (-F) auf ein Komma (,) fest und gibt das erste und zweite Feld aus. (Beispieldatei: `fruit,100,red\nbanana,200,yellow`)
Tipps & Hinweise
Tipps und zu beachtende Punkte für die effektivere Nutzung von `awk print`.
Leistungs- und Nutzungstipps
- Verwenden Sie `printf` anstelle von `print`: `printf` ermöglicht eine präzise Formatierungskontrolle, ähnlich wie `printf` in C. `print` fügt standardmäßig OFS (Ausgabefeldtrennzeichen) zwischen den Argumenten und OSR (Ausgabedatensatztrennzeichen, standardmäßig Zeilenumbruch) hinzu, während `printf` eine manuelle Formatierung durch den Benutzer erfordert.
- Geben Sie das Feldtrennzeichen (`-F`) klar an: Wenn das Feldtrennzeichen der Eingabedatei nicht das Leerzeichen ist, stellen Sie eine korrekte Feldtrennung sicher, indem Sie die Option `-F` verwenden.
- Verwalten Sie komplexe Logik in `awk`-Skriptdateien: Wenn das Skript länger wird, ist die Verwaltung in einer separaten Datei im Format `awk -f script.awk data.txt` besser für die Lesbarkeit und Wartung.
- Nutzen Sie integrierte Variablen: Die Nutzung der leistungsstarken integrierten Variablen von `awk` wie `NR` (aktuelle Datensatznummer), `NF` (Anzahl der Felder im aktuellen Datensatz), `FS` (Eingabefeldtrennzeichen), `RS` (Eingabedatensatztrennzeichen) usw. ermöglicht eine flexiblere Verarbeitung.