Gawk Scripting -Verwendungsbeispiele

Gawk Scripting -Verwendungsbeispiele
Eine Möglichkeit, mit Dateien unter Linux zu arbeiten. Ein Beispiel für eine gute Skriptsprache ist awk Dies erleichtert das Extrahieren von Daten und das Arbeiten mit Mustern. Die GNU -Implementierung der awk -Skriptsprache ist gaffen. Wenn Sie sich noch mit seiner Verwendung abfinden müssen, haben Sie Glück. Dieser Beitrag zeigt die verschiedenen Beispiele für die Verwendung von Gawk unter Linux und am Ende dieses Handbuchs werden Sie ein solides Verständnis für die Arbeit damit verabschieden.

Erste Schritte mit Gawk

Wenn Sie die neuesten Linux -Versionen verwenden, sollte Gawk standardmäßig installiert werden. Sie können überprüfen, indem Sie die Version überprüfen.

Es gibt verschiedene Möglichkeiten, Gawk zu verwenden. Die gemeinsamen Funktionen sind die folgenden:

  • Formatausgangsleitungen
  • Datendateien transformieren
  • Scannen von Dateien pro Zeile
  • Aufspaltung der Eingangsleitung in Felder
  • Erstellen von formatierten Berichten
  • Daten sortieren

Die grundlegende Syntax für Gawk ist:

$ gawk [posix / gnu stile Optionen] -F programm_file [ -] Datei
$ gawk [posix / gnu style -Optionen] [ -] Programmdatei…

Um Gawk zu verwenden, verwenden Sie entweder die -F Option zum Angeben einer Skriptdatei oder zur direkten Angabe des Skripts in der Befehlszeile.

Bei der Verwendung von Gawk müssen drei wichtige Optionen beachten:

1. -f Datei, -file = Datei: Wird verwendet, wenn Sie Gawk verwenden und Befehle aus einer Datei lesen möchten. Die Datei ist das Skript.

2. -v var = val, -Sign = var = val: Wird verwendet, wenn Sie vor der Ausführung eines Skripts einer Variablen einen Wert zuweisen müssen.

3. -F fs, -Field -Separator = fs: Der Wert der vordefinierten Variablen FS wird als Trennzeichen für das Eingabefeld verwendet.

Integrierte Variablen

Gawk bietet integrierte Variablen wie:

Fs: Wird beim Teilen von Dateien verwendet und enthält das Feldabscheiderzeichen.

Rs: Enthält das Stromscheider -Separator.

Ofs: Enthält den Ausgangsfeldabscheider, der die Felder trennt, die awk druckt.

NF: Die Anzahl der Felder für den Eingangsdatensatz wird in der NF gespeichert.

Ors: Enthält den Ausgangsfeldabscheider, der die von awk gedruckten Ausgangsleitungen trennt.

NR: Enthält die Gesamtzahl der Eingangsleitungen.

Im vorherigen Beispiel verwenden wir * als Trennzeichen für die Eingabezeilen in der Datei.

Beispiel Verwendung von Gawk

1. -F

Verwenden Sie den folgenden Befehl zum Sortieren einer Textdatei und zum Drucken der ersten drei mit Dickdarm getrennten Felder. Beachten Sie, dass wir die verwenden Passwd Als unsere Datei hier:

$ gawk -f: 'print $ 1; drucken $ 2; Drucken Sie $ 3 ' /etc /passwd

Hier ist unser Separator ein voller Dickdarm. Da wir die ersten drei Felder wollen, geben Sie diese wie im vorherigen Beispiel angegeben an. Sie können es optimieren und einen anderen Separator und eine andere Anzahl von Feldern verwenden.

2. -F

Verwenden Sie um die AWK -Programmquelle aus einer Datei, verwenden Sie das Flag -f -Flag, gefolgt von der Datei:

$ gawk -f: -f Datei1.txt /etc /passwd

3. Drucken des Inhalts einer Datei

Das Verwenden von Gawk in einer Datei druckt alle Datenzeilen in der Datei aus.

4. Arbeiten mit Mustern

Sie können Gawk auch verwenden und nur die Zeilen drucken, die einem bestimmten Muster entsprechen. Zum Beispiel, um eine Zeile mit einem bestimmten Wort zu drucken, ist das Wort in unserem Fall das Wort Kim, Der Befehl wäre:

$ gawk '/ kim/ print' Dateiname

Hier kann das Muster auch ein Charakter sein. Um beispielsweise alle Zeilen, die einen Dickdarm enthalten, zu drucken, wäre der Befehl wie im folgenden Bild:

Sie können auch die spezifischen Zeilen angeben, die gedruckt werden sollen. Zum Beispiel ist die Syntax, um die Zeilen mit spezifischen Zeichen wie mehr als 6 zu drucken,: die Syntax ist:

$ gawk 'Länge ($ 0)> 6' Dateiname

5. Leitungen in Felder aufteilen

Gawk druckt standardmäßig jedes Feld beim Drucken von Zeilen in einer Datei aus. Sie können jedoch angeben, welches Feld Sie drucken sollen. Das erste Feld wird in der gespeichert $ 1 und die ganze Linie wird als dargestellt als $ 0. Standardmäßig wird die gesamte Zeile gedruckt, sofern Sie nicht angeben.

Zum Beispiel wäre der Befehl, um die Zeilen zu trennen und nur das zweite Feld jeder Zeile zu drucken:

$ gawk 'print $ 2' Dateiname

Um die Zeilennummern hinzuzufügen, fügen Sie die hinzu Nr Variable.

Der neue Befehl wäre:

$ gawk 'print nr, $ 2' Dateiname

6. Holen Sie sich die Anzahl der Zeilen

Möglicherweise müssen Sie die Gesamtzahl der Zeilen für große Dateien erhalten, und dies können mit der folgenden Syntax erreichen:

$ gawk 'end drucken nr' Dateiname

Abschluss

Zu wissen, wie man Gawk in Linux verwendet. Sie können die verschiedenen Muster verwenden, um die Datenlinien zu extrahieren und zu manipulieren. Hoffentlich bieten die in diesem Artikel behandelten Beispiele einen Vorsprung und öffnen Sie Ihre Augen, wenn Sie Gawk für verschiedene Aktivitäten verwenden.