AWK-Übersicht
AWK ist ein Akronym, das aus den Initialen seiner drei Entwickler A. V. Aho, P. J. Weinberger und B. W. Kernighan gebildet wurde. Es ist eine weit verbreitete Datenmanipulationssprache in Unix-ähnlichen Systemen. Es liest Eingaben Zeile für Zeile aus Dateien oder der Standardeingabe und verarbeitet Daten basierend auf angegebenen Mustern und Aktionen.
Wie AWK funktioniert
AWK folgt einer grundlegenden Struktur: `pattern { action }`. Bei jeder gelesenen Zeile wird, wenn das `pattern` übereinstimmt, die `action` ausgeführt. Wenn kein Muster vorhanden ist, wird die Aktion für jede Zeile ausgeführt. Wenn keine Aktion vorhanden ist, werden übereinstimmende Zeilen unverändert ausgegeben.
Merkmale von AWK
- Zeilenweise Verarbeitung: Verarbeitet Eingabedateien Zeile (Datensatz) für Zeile.
- Feldweiser Zugriff: Teilt jede Zeile in Felder ($1, $2, ...) auf, die durch Leerzeichen (Standardtrennzeichen) getrennt sind, und ermöglicht den Zugriff darauf.
- Musterabgleich: Kann Operationen nur auf Zeilen ausführen, die einem bestimmten Muster entsprechen.
- Programmierfunktionen: Bietet grundlegende Programmierfunktionen wie Variablen, Bedingungsanweisungen, Schleifen und Funktionen.
- Berichtserstellung: Kann komplexe formatierte Textberichte einfach erstellen.
Wichtige AWK-Befehle und -Optionen
Verarbeiten Sie Textdaten präzise mit den verschiedenen Optionen, integrierten Variablen und speziellen Mustern von AWK.
1. Grundlegende Verwendung und Eingabe-/Ausgabeoptionen
2. Eingebaute Variablen
3. Spezielle Muster
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`awk` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Verwendungsbeispiele
Erleben Sie die Magie der Textdatenverarbeitung durch verschiedene Beispiele für die Verwendung des AWK-Befehls.
Nur die zweite Spalte aus einer Datei ausgeben
awk '{print $2}' data.txt
Extrahiert und gibt nur das zweite Feld (Spalte) jeder Zeile aus der Datei `data.txt` aus. (Standardtrennzeichen: Leerzeichen)
Spezifische Spalten aus einer CSV-Datei ausgeben
awk -F',' '{print "Name: " $1 ", Punktzahl: " $3}' scores.csv
Gibt den Namen (erstes Feld) und die Punktzahl (drittes Feld) aus der durch Kommas (`,`) getrennten Datei `scores.csv` aus.
Nur Zeilen ausgeben, die ein bestimmtes Muster enthalten
awk '/ERROR/{print}' log.txt
Gibt alle Zeilen aus der Datei `log.txt` aus, die die Zeichenfolge 'ERROR' enthalten.
Mit Zeilennummern ausgeben
awk '{print NR ": " $0}' names.txt
Gibt jede Zeile der Datei `names.txt` mit vorangestellter Zeilennummer aus.
Wert des zweiten Feldes in Zeilen ändern, in denen das erste Feld 'apple' ist
awk '$1 == "apple" {$2 = "fruit"; print}' inventory.txt
Findet Zeilen in der Datei, in denen das erste Feld 'apple' ist, ändert das zweite Feld in 'fruit' und gibt dann die gesamte Zeile aus.
Nachrichten vor und nach der Dateiverarbeitung ausgeben und Gesamtsumme berechnen
awk 'BEGIN {total = 0; print "Berechnung startet!"} {total += $1} END {print "Gesamt: " total}' numbers.txt
Addiert alle Zahlen in `numbers.txt` und gibt Nachrichten am Anfang und Ende aus. (Geht davon aus, dass jede Zeile nur eine Zahl enthält)