Die Utilities Linux bieten häufig der Unix -Designphilosophie des Designs an. Jedes Werkzeug sollte klein sein, einen einfachen Text für E/A verwenden und modular arbeiten. Dank des Erbes haben wir mit Hilfe von Werkzeugen wie SED einige der besten Funktionen der Textverarbeitung mit Hilfe von Werkzeugen wie SED und AWK.
In Linux wird das awk-Tool auf allen Linux-Distributionen vorinstalliert. Awk selbst ist eine Programmiersprache. Das AWK -Tool ist nur ein Interpret der AWK -Programmiersprache. In diesem Handbuch finden Sie in der Verwendung von AWK unter Linux.
Awk Nutzung
Das awk -Tool ist am nützlichsten, wenn Texte in einem vorhersehbaren Format organisiert sind. Es ist ziemlich gut darin, tabellarische Daten zu analysieren und zu manipulieren. Es arbeitet in der gesamten Textdatei line-by-line-Basis in der gesamten Textdatei.
Das Standardverhalten von awk besteht darin, Weißespaces (Räume, Registerkarten usw. zu verwenden.) zum Trennen von Feldern. Zum Glück folgen viele der Konfigurationsdateien unter Linux diesem Muster.
Grundlegende Syntax
So sieht die Befehlsstruktur von awk aus.
$ awk '// ; ; '
Die Teile des Befehls sind ziemlich selbsterklärend. Awk kann ohne den Such- oder Aktionsteil arbeiten. Wenn nichts angegeben ist, wird die Standardaktion im Spiel nur gedruckt. Grundsätzlich druckt awk alle in der Datei gefundenen Übereinstimmungen.
Wenn kein Suchmuster angegeben ist, führt awk die angegebenen Aktionen in jeder einzelnen Zeile der Datei aus.
Wenn beide Teile angegeben sind, verwendet awk das Muster, um festzustellen, ob die aktuelle Linie es widerspiegelt. Wenn abgestimmt, führt awk die angegebene Aktion aus.
Beachten Sie, dass awk auch an umgeleiteten Texten funktionieren kann. Dies kann erreicht werden, indem der Inhalt des Befehls an awk verlegt wird, um darauf zu reagieren. Erfahren Sie mehr über den Befehl Linux Pipe.
Für Demo -Zwecke finden Sie hier eine Beispieltextdatei. Es enthält 10 Zeilen, 2 Wörter pro Zeile.
$ CAT -Probe.txt
Regulären Ausdruck
Eines der Schlüsselmerkmale, die AWK zu einem leistungsstarken Tool machen, ist die Unterstützung des regulären Ausdrucks (kurz). Ein regulärer Ausdruck ist eine Zeichenfolge, die ein bestimmtes Zeichenmuster darstellt.
Hier ist eine Liste der häufigsten regulären Ausdrucksyntaxen. Diese Regex -Syntaxe sind nicht nur für awk nur einzigartig. Dies sind fast universelle Regex -Syntaxen, daher hilft das Mastering auch in anderen Apps/Programmierungen, die regelmäßig Ausdruck beinhalten.
Drucken des Textes
Um den gesamten Inhalt einer Textdatei zu drucken, verwenden Sie den Befehl drucken. Im Fall des Suchmusters wird kein Muster definiert. Also druckt awk alle Zeilen aus.
$ awk 'print' Beispiel.txt
Hier ist „Print“ ein awk -Befehl, der den Inhalt der Eingabe druckt.
String -Suche
Awk kann eine grundlegende Textsuche im angegebenen Text ausführen. Im Musterabschnitt muss es der Text sein, der zu finden ist.
Im folgenden Befehl sucht AWK in allen Zeilen der Dateibeispiel nach dem Text „schnell“ nach dem Text.txt.
$ awk '/Quick/' Beispiel.txt
Lassen Sie uns nun einige regelmäßige Ausdrücke verwenden, um die Suche weiter zu optimieren. Der folgende Befehl druckt alle Zeilen, die zu Beginn „braun“ haben.
$ awk '/^braun/' Beispiel.txt
Wie wäre es, am Ende einer Linie etwas zu finden?? Der folgende Befehl druckt alle Zeilen, die am Ende „schnell“ haben.
$ awk '/Quick $/' Beispiel.txt
Wildkartenmuster
Das nächste Beispiel wird die Verwendung der Pflege vorstellen (.). Hier kann es zwei Zeichen vor dem Charakter „E“ geben.
$ awk '/… e/' Beispiel.txt
Wildkartenmuster (mit Sternchen)
Was ist, wenn es eine beliebige Anzahl von Zeichen am Ort geben kann? Verwenden Sie das Sternchen (*), um einen möglichen Charakter an der Position zu entsprechen, um den Sternchen zu verwenden (*). Hier passt Awk mit allen Zeilen überein, die nach „dem“ eine beliebige Anzahl von Zeichen haben.
$ awk '/das*/' Beispiel.txt
Ausdruck von Klammer
Das folgende Beispiel zeigt, wie Sie den Ausdruck der Halterung verwenden können. Der Ausdruck der Klammer zeigt, dass das Match am Ort gültig ist, wenn es dem von den Klammern eingeschlossenen Zeichen entspricht. Zum Beispiel stimmt der folgende Befehl mit den gültigen Übereinstimmungen mit „The“ und „Tee“ überein.
$ awk '/t [er] e/' Beispiel.txt
Es gibt einige vordefinierte Zeichensätze im regulären Ausdruck. Beispielsweise wird der Satz aller Großbuchstaben als "A-Z" bezeichnet. Im folgenden Befehl stimmt AWK mit allen Wörtern überein, die einen Großbuchstaben enthalten.
$ awk '/[a-z]/' Beispiel.txt
Schauen Sie sich die folgende Verwendung von Charakter -Sets mit Klassenausdruck an.
Awk vordefinierte Variablen
Awk wird mit einer Reihe vordefinierter und automatischer Variablen geliefert. Diese Variablen können Schreibprogramme und Skripte mit awk erleichtern.
Hier sind einige der häufigsten AWK -Variablen, auf die Sie stoßen werden.
Lassen Sie uns sie in Aktion überprüfen. Der folgende Befehl verwendet die NR.txt. Awk unterstützt auch logische Operatoren wie logisch und (&&).
$ awk 'nr> 1 && nr < 5' sample.txt
Verwenden Sie die folgende Struktur, um einer awk -Variablen einen bestimmten Wert zuzuweisen.
$ awk '// ; ; '= ,
Ändern Sie beispielsweise alle leeren Zeilen aus der Eingabedatei, um den Wert von RS auf im Grunde genommen nichts zu ändern. Es ist ein Trick, der eine obskure POSIX -Regel verwendet. Es gibt an, dass, wenn der Wert von RS eine leere Zeichenfolge ist, die Datensätze durch eine Sequenz getrennt sind, die aus einer neuen Zeile mit einer oder mehreren leeren Zeilen besteht. In POSIX ist eine leere Linie ohne Inhalt völlig leer. Wenn die Linie jedoch Whitespaces enthält, gilt sie nicht als „leer“.
$ awk 'print' rs = "Beispiel.txt
Zusätzliche Ressourcen
Awk ist ein leistungsstarkes Werkzeug mit Tonnen von Funktionen. Während dieser Leitfaden viele von ihnen abdeckt, sind es immer noch nur die Grundlagen. Mastering Awk wird mehr als nur das dauern. Dieser Leitfaden sollte eine schöne Einführung in das Werkzeug sein.
Wenn Sie das Tool wirklich beherrschen möchten, finden Sie hier einige zusätzliche Ressourcen, die Sie auschecken sollten.
Das Internet ist ein guter Ort, um etwas zu lernen. Es gibt viele großartige Tutorials zu den Grundlagen für awk.
Letzter Gedanke
Hoffentlich hat dieser Leitfaden dazu beigetragen, die AWK -Grundlagen gut zu verstehen. Während es eine Weile dauern kann, ist das Mastering awk in Bezug auf die Kraft, die es schenkt, äußerst lohnend.
Happy Computing!