Awk - erweiterte Funktionen

Awk - erweiterte Funktionen

AWK ist ein leistungsstarkes Tool zur Verarbeitung und Manipulation von Text, das eine Reihe erweiterter Funktionen für erfahrene Benutzer bietet. Einige der nützlichsten erweiterten Funktionen von AWK sind regelmäßige Ausdrücke, bedingte Aussagen, Arrays, Funktionen und String -Manipulationsfunktionen. Mit diesen Funktionen bietet AWK ein leistungsstarkes und flexibles Toolset, das für eine Vielzahl von Aufgaben verwendet werden kann, einschließlich der Analyse der Protokolldatei, der Systemüberwachung, der Datenextraktion und -transformation sowie der Erzeugung von Bericht.

In diesem Artikel werden wir einige der nützlichsten und leistungsstärksten AWK -Funktionen für erweiterte Benutzer untersuchen. Dieses Tutorial umfasst:

  1. Verwenden regelmäßiger Ausdrücke in awk
  2. Verwenden der bedingten Aussagen
  3. Arbeiten mit Arrays in awk
  4. Arbeiten mit Funktionen in awk
  5. String Manipulation mit awk

Beginnen wir den Artikel:

Reguläre Ausdrücke

Eines der leistungsstärksten Merkmale von AWK ist die Unterstützung für reguläre Ausdrücke. Regelmäßige Ausdrücke sind Muster, die Sätze von Zeichenfolgen beschreiben und zur Übereinstimmung mit dem Suchen und Manipulieren von Textdaten verwendet werden können.

Im folgenden Befehl werden beispielsweise alle Zeilen gedruckt, die das Wort "Fehler" in einer Protokolldatei enthalten:

awk '/error/' logfile.txt
1awk '/error/' logfile.txt

Mit diesem Befehl wird awk verwendet, um die Protokolldatei nach Zeilen zu durchsuchen, die das Wort „Fehler“ enthalten, und diese Zeilen in die Konsole drucken.

Bedingte Aussagen

Awk unterstützt bedingte Aussagen, mit denen Sie verschiedene Befehle basierend auf den Werten von Variablen oder Ausdrücken ausführen können.

Beispielsweise druckt der folgende Befehl für jede Nummer in einer Datei "gleichmäßig" oder "ungerade", je nachdem, ob es gerade oder ungerade ist:

awk 'if ($ 1 % 2 == 0) drucken $ 1, "sogar"; sonst drucken Sie $ 1, "ungerade" 'Zahlen.txt
1awk 'if ($ 1 % 2 == 0) drucken $ 1, "sogar"; sonst drucken Sie $ 1, "ungerade" 'Zahlen.txt

Mit diesem Befehl wird awk überprüft, ob jede Nummer in der Datei gerade oder ungerade ist, und das Ergebnis in die Konsole auszudrucken.

Arrays

AWK unterstützt auch Arrays, mit denen Sie Werte oder Datenstrukturen speichern und manipulieren können.

Der folgende Befehl zählt beispielsweise die Anzahl der Vorkommen jedes Wortes in einer Textdatei:

awk 'für (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt
1awk 'für (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt

Mit diesem Befehl wird awk verwendet, um jedes Wort in der Datei zu durchschleifen und die Anzahl jedes Wortes in einem Array zu speichern. Das Endergebnis wird zur Konsole gedruckt.

Funktionen

Awk unterstützt benutzerdefinierte Funktionen, mit denen Sie wiederverwendbare Code für gemeinsame Aufgaben erstellen können.

Beispielsweise verwendet der folgende Befehl eine benutzerdefinierte Funktion, um Fahrenheitstemperaturen in Celsius umzuwandeln:

awk 'Funktion f2c (f) return (f-32)*(5/9) print $ 1, f2c ($ 2)' Temperaturen.txt
1awk 'Funktion f2c (f) return (f-32)*(5/9) print $ 1, f2c ($ 2)' Temperaturen.txt

Mit diesem Befehl wird awk verwendet, um die Temperaturen in Fahrenheit aus einer Datei zu lesen und sie mit einer benutzerdefinierten Funktion in Celsius zu konvertieren.

Streichmanipulation

Awk unterstützt eine Reihe von String -Manipulationsfunktionen, mit denen Sie Zeichenfolgen ändern, verkettet und geteilt werden können.

Der folgende Befehl teilt beispielsweise eine von Kommas getrennte Liste von Werten in separate Felder auf:

awk -f ', "print $ 1, $ 2' Daten.CSV
1awk -f ',' 'print $ 1, $ 2' Daten.CSV

Mit diesem Befehl wird awk verwendet, um eine von Kommas getrennte Datei in separate Felder aufzuteilen und die ersten beiden Felder in die Konsole auszudrucken.

Abschluss

AWK bietet eine Reihe erweiterter Funktionen für erfahrene Benutzer, einschließlich regulärer Ausdrücke, bedingten Aussagen, Arrays, Funktionen und String -Manipulation. Durch das Beherrschen dieser Funktionen können Sie zu einem effizienteren und effektiveren Experten für Textverarbeitung und Manipulation werden und Zeit und Mühe in Ihrer Arbeit sparen.