Beispiele für die Verwendung von Gawk-Skripten
Einführung in Gawk
Wenn Sie die neuesten Linux-Versionen verwenden, sollte gawk standardmäßig installiert sein. Sie können dies überprüfen, indem Sie die Version überprüfen.
Es gibt verschiedene Möglichkeiten, gawk zu verwenden. Die gängigen Funktionen sind die folgenden:
- Formatiere Ausgabelinien
- Daten Dateien umwandeln
- Dateien zeilenweise scannen
- Die Eingabezeile in Felder aufteilen
- Erstellen von formatierten Berichten
- Daten sortieren
Die grundlegende Syntax für gawk ist:
gawk [POSIX / GNU style options] -f program_file [ -- ] file
gawk [POSIX / GNU style options] [ -- ] ‘program’ file ...Um gawk zu verwenden, verwenden Sie entweder die -f Option, um eine Skriptdatei anzugeben, oder geben Sie das Skript direkt in der Befehlszeile ein.
Es gibt drei wichtige Optionen, die man beim Verwenden von gawk beachten sollte:
1. -f Datei, –file=Datei: Verwendet, wenn Sie gawk verwenden und Befehle aus einer Datei lesen möchten. Die Datei ist das Skript.
2. -v var=val, –assign=var=val: Wird verwendet, wenn Sie einer Variablen einen Wert zuweisen müssen, bevor Sie ein Skript ausführen.
3. -F fs, –field-separator=fs: Der Wert der vordefinierten Variable FS wird als Trennzeichen für das Eingabefeld verwendet.
Integrierte Variablen
Gawk bietet integrierte Variablen wie:
FS: Wird verwendet, um Dateien zu teilen und enthält das Feldtrennzeichen.
RS: Enthält den aktuellen Zeichentrenner.
OFS: Enthält den Ausgabefeldtrennzeichen, das die Felder trennt, die AWK ausgibt.
NF: Die Anzahl der Felder für den Eingabepost wird in NF gespeichert.
ORS: Enthält das Ausgabefeldtrennzeichen, das die von AWK ausgegebenen Zeilen trennt.
NR: Enthält die Gesamtzahl der Eingabezeilen.
Im vorherigen Beispiel verwenden wir * als Trennzeichen für die Eingabezeilen in der Datei.
Beispielverwendung von Gawk
1. -F
Um eine Textdatei zu sortieren und die ersten drei durch Doppeltpunkt getrennten Felder auszudrucken, verwenden Sie den folgenden Befehl. Beachten Sie, dass wir hier die passwd als unsere Datei verwenden:
gawk -F: ‘{print $1; print $2; print $3}’ /etc/passwdHier ist unser Trennzeichen ein Doppelpunkt. Da wir die ersten drei Felder wollen, geben Sie sie wie im vorherigen Beispiel an. Sie können es anpassen und ein anderes Trennzeichen sowie eine andere Anzahl von Feldern verwenden.
2. -f
Um die Quelle des awk-Programms aus einer Datei anzugeben, verwenden Sie die -f-Option, gefolgt von der Datei:
gawk -F: -f file1.txt /etc/passwd3. Drucken des Inhalts einer Datei
Die Verwendung von gawk auf einer Datei gibt alle Datensätze in der Datei aus.
4. Arbeiten mit Mustern
Sie können auch gawk verwenden und nur die Zeilen drucken, die einem bestimmten Muster entsprechen. Zum Beispiel, um eine Zeile mit einem bestimmten Wort zu drucken, in unserem Fall ist das Wort kim, wäre der Befehl:
gawk ‘/kim/ {print}’ file-name
Hier kann das Muster auch ein Zeichen sein. Zum Beispiel, um alle Zeilen zu drucken, die einen Doppelpunkt enthalten, wäre der Befehl wie im folgenden Bild:
Sie können auch die spezifischen Zeilen angeben, die gedruckt werden sollen. Zum Beispiel, um die Zeilen drucken, die bestimmte Zeichen enthalten, wie größer als 6, lautet die Syntax:
gawk ‘length ($0) > 6’ file-name5. Aufteilen von Zeilen in Felder
Gawk gibt standardmäßig jedes Feld aus, wenn es Zeilen aus einer Datei ausdruckt. Sie können jedoch angeben, welches Feld gedruckt werden soll. Das erste Feld wird in $1 gespeichert und die gesamte Zeile wird als $0 dargestellt. Standardmäßig wird die gesamte Zeile ausgegeben, es sei denn, Sie geben an, die Felder nach dem Leerraum zu trennen.
Zum Beispiel, um die Zeilen zu trennen und nur das zweite Feld jeder Zeile auszudrucken, würde der Befehl lauten:
gawk ‘{print $2}’ file-nameUm die Zeilennummern hinzuzufügen, fügen Sie die NR Variable hinzu.
Der neue Befehl wäre:
gawk ‘{print NR, $2}’ file-name6. Erhalte die Anzahl der Zeilen
Möglicherweise müssen Sie die Gesamtzahl der Zeilen für große Dateien ermitteln, und das können Sie mit der folgenden Syntax erreichen:
gawk ‘END {print NR}’ file-nameFazit
Das Wissen, wie man gawk in Linux einsetzt, macht Spaß und ist hilfreich, besonders beim Umgang mit Textdaten. Man kann verschiedene Muster verwenden, um die Datenzeilen zu extrahieren und zu manipulieren. Hoffentlich geben die in diesem Artikel behandelten Beispiele Ihnen einen Vorsprung und öffnen Ihnen die Augen für die Verwendung von gawk bei verschiedenen Aktivitäten.









