Awk - eine Einführung und ein Tutorial

Awk - eine Einführung und ein Tutorial

Bei der Arbeit mit Linux ist eines der leistungsstärksten Tools, die für die Textverarbeitung verfügbar sind. Es ist ein vielseitiges Befehlszeilen-Tool, das für eine Vielzahl von Aufgaben verwendet werden kann, einschließlich Such-, Filter- und Manipulation von Textdaten.

In diesem Artikel werden wir die Grundlagen von AWK, einschließlich seiner Syntax, der Verwendung in der Befehlszeile und einigen grundlegenden Beispielen dafür, wie sie verwendet werden können, behandelt werden, um Textdaten zu verarbeiten.

Was ist awk?

AWK ist eine Programmiersprache, die für die Textverarbeitung und die Datenextraktion entwickelt wurde. Es wurde in den 1970er Jahren bei Bell Labs entwickelt und ist heute ein Standardmerkmal der meisten UNIX-basierten Betriebssysteme, einschließlich Linux.

AWK ist besonders nützlich für die Verarbeitung von Textdateien, da Sie Daten basierend auf bestimmten Mustern oder Bedingungen suchen, filtern und manipulieren können. Es funktioniert, indem Daten aus einer Datei oder Standardeingabe gelesen, eine Reihe von Regeln oder Befehlen auf diese Daten angewendet werden und dann die Ergebnisse ausgedrucken.

Awk Syntax

Die grundlegende Syntax eines awk -Befehls lautet wie folgt:

awk 'muster action' Datei
1awk 'muster action' Datei

Hier gibt das Muster die Bedingungen an, die für die Ausführung der Aktion erfüllt werden müssen, und die Datei gibt die Datei an, für die der Befehl arbeiten soll. Wenn keine Datei angegeben ist, liest awk Daten aus der Standardeingabe (i.e., die Tastatur).

Das Muster kann ein regulärer Ausdruck oder ein Wertebereich sein, und die Aktion kann jeder gültige awk -Befehl sein, einschließlich Druckanweisungen, Variablen und Schleifen.

AWK Ein-Liner-Aussagen

Eines der großartigen Dinge an awk ist, dass es zum Schreiben von Einzeilern verwendet werden kann - kurze, kraftvolle Befehle, die direkt aus der Befehlszeile ausgeführt werden können.

Hier sind einige Beispiele für AWK-Einzeiler, mit denen Sie gemeinsame Textverarbeitungsaufgaben ausführen können:

  • Drucken Sie die erste Spalte einer CSV -Datei:
    awk -f "," 'print $ 1' Datei.CSV  
  • Drucken Sie bestimmte Spalten einer CSV -Datei:
    awk -f "," 'print $ 1, $ 3' Datei.CSV  

    In diesem Befehl wird die Option -F verwendet, um anzugeben, dass die Datei gewehrtertisch ist, und druckt dann die erste und dritte Spalten der Datei aus.

  • Zählen Sie die Anzahl der Zeilen in einer Datei:
    awk 'end print nr' Datei.txt  
  • Drucken Sie alle Zeilen aus, die einem bestimmten Muster übereinstimmen ::
    awk '/ muster/ print' Datei.txt  
  • Zählen Sie die Anzahl der Vorkommen eines Musters in einer Datei:
    awk '/ muster/ count ++ end print count' Datei.txt  
  • Drucken Sie die letzte Zeile einer Datei:
    awk 'end print' Datei.txt  
  • Drucken Sie den Durchschnittswert einer Spalte in einer Datei:
    awk 'sum+= $ 2 end print sum/nr' Datei.txt  
  • Drucken Sie den Durchschnitt der zweiten Spalte in einer Datei:
    awk 'sum += $ 2 end print sum/nr' Datei.txt  
  • Drucken Sie die Zeilen in umgekehrter Reihenfolge:
    awk 'a [i ++] = $ 0 Ende für (j = i-1; j> = 0;) Drucken Sie eine [j--]' Datei drucken.txt  
  • Drucken Sie den Inhalt einer Datei aus:
    awk 'print' Datei.txt  

    Dieser Befehl liest einfach den Inhalt der Datei.TXT und druckt jede Zeile auf den Bildschirm.

  • Suchen Sie nach Zeilen, die ein bestimmtes Muster enthalten:
    awk '/ error/ print' Datei.Protokoll  

    Dieser Befehl sucht nach Zeilen, die das Wort „Fehler“ enthalten und auf dem Bildschirm druckt.

Sie mögen mögen: awk arithmetische Operationen: Ein Anfängerleitfaden zu grundlegenden Berechnungsmethoden

Awk für die Systemverwaltung

Schauen wir uns nun einige praktische Beispiele dafür an, wie awk für Systemverwaltungsaufgaben verwendet werden können.

Protokolldateien analysieren

Protokolldateien sind ein wesentliches Tool für Systemadministratoren, um die Systemleistung zu überwachen und Probleme zu diagnostizieren. Sie können jedoch schwer zu lesen und zu analysieren, insbesondere wenn sie große Datenmengen enthalten.

Awk kann verwendet werden, um Protokolldateien zu analysieren und relevante Informationen zu extrahieren. Beispielsweise extrahiert der folgende Befehl alle IP -Adressen aus einer Apache -Zugriffsprotokolldatei:

awk 'print $ 1' Zugriff.Protokoll
1awk 'print $ 1' Zugriff.Protokoll

In diesem Befehl wird die erste Spalte der Zugriffsprotokolldatei ausgedruckt, die die IP -Adresse des Clients enthält.

Überwachung der Systemressourcen

Awk kann auch verwendet werden, um Systemressourcen wie CPU und Speicherverbrauch zu überwachen. Beispielsweise zeigt der folgende Befehl die Top 5 Prozesse an, die die meiste CPU konsumieren:

PS Aux | awk 'print $ 2, $ 3, $ 11' | sortieren -k2rn | Kopf -n5
1PS Aux | awk 'print $ 2, $ 3, $ 11' | sortieren -k2rn | Kopf -n5

Mit diesem Befehl wird PS verwendet, um alle laufenden Prozesse aufzulisten und dann awk zu extrahieren, um die Prozess -ID, die CPU -Verwendung und den Prozessnamen zu extrahieren. Der Befehl sortieren wird verwendet, um die Ausgabe nach CPU -Verwendung zu sortieren, und der Befehl Kopf wird verwendet, um nur die Top 5 -Ergebnisse anzuzeigen.

Berichte generieren

Systemadministratoren müssen häufig Berichte über verschiedene Aspekte der Systemleistung und -nutzung erstellen. Awk kann verwendet werden, um Daten aus Protokolldateien, Systemdateien und anderen Quellen zu extrahieren und zusammenzufassen.

Der folgende Befehl generiert beispielsweise einen Bericht über die Festplattennutzung aller montierten Dateisysteme:

df -h | awk 'print $ 1, $ 5'
1df -h | awk 'print $ 1, $ 5'

Mit diesem Befehl wird DF verwendet, um alle montierten Dateisysteme aufzulisten und dann awk zu extrahieren, um den Namen des Dateisystems und den Prozentsatz des verwendeten Speicherplatzes zu extrahieren.

Änderung von Konfigurationsdateien

Konfigurationsdateien sind ein wesentlicher Bestandteil der Systemverwaltung und müssen häufig geändert werden, um die Systemleistung zu optimieren oder Probleme zu beheben. Awk kann verwendet werden, um Konfigurationsdateien vorhanden zu ändern, ohne dass manuelle Bearbeitung erforderlich ist.

Beispielsweise ersetzt der folgende Befehl alle Vorkommen von „localhost“ durch „Beispiel.com ”in der Apache -Konfigurationsdatei:

awk 'gsub (/localhost/, "Beispiel.com "); print '/etc/apache2/apache2.conf> /tmp /apache2.Conf
1awk 'gsub (/localhost/, "Beispiel.com "); print '/etc/apache2/apache2.conf> /tmp /apache2.Conf

Mit diesem Befehl wird awk verwendet, um in der Apache -Konfigurationsdatei nach dem Zeichenfolge „Localhost“ zu suchen und ihn durch „Beispiel zu ersetzen“.com ”. Die geänderte Konfigurationsdatei wird dann in eine temporäre Datei geschrieben.

Abschluss

Awk ist ein leistungsstarkes Werkzeug für die Textverarbeitung und die Datenextraktion unter Linux. Es ist relativ einfach zu lernen und bietet eine breite Palette von Funktionen, mit denen Textdaten manipuliert und transformiert werden können.

In diesem Artikel haben wir die Grundlagen von awk, einschließlich seiner Syntax, der Verwendung in der Befehlszeile und einigen grundlegenden Beispielen dafür behandelt, wie sie verwendet werden können, um Textdaten zu verarbeiten. Wir haben auch AWK-Einzeiler abgedeckt, die leistungsstarke Befehle sind, mit denen gemeinsame Textverarbeitungsaufgaben mit minimalem Aufwand ausgeführt werden können.

Mit diesem Wissen können Sie fortgeschrittenere Funktionen von AWK untersuchen, einschließlich regulärer Ausdrücke, Variablen und Funktionen. Durch das Mastering awk können Sie ein effizienterer und effektiverer Linux -Benutzer werden, der mit Leichtigkeit große Mengen an Textdaten verarbeiten kann.