GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-awk-Befehl mit 10 Beispielen

Computersysteme wurden schon immer verwendet, um wertvolle Daten zu analysieren, die in einfachen Textdateien gespeichert sind. Computersysteme selbst wiederum werden über Protokolldateien verwaltet. Was in diesen beiden Situationen potenziell üblich ist, ist, dass sie eine große Datenmenge enthalten, die oft vor dem eigentlichen Lesen der Daten gestrafft werden muss; andernfalls ist es nur verwirrend.

Wenn Sie beispielsweise einige Daten in Tabellenform lesen, möchten Sie einige Spalten, andere nicht.

Diese Anforderung war schon damals eine düstere, und folglich verfügt das GNU-Projekt über ein erstaunliches Tool, das Benutzern hilft, Daten für ein besseres Erlebnis zu filtern und zu extrahieren. Dieses Tool ist AWK .

Geschichte

AWK ist eigentlich eine Programmiersprache, die sich der Textverarbeitung widmet. Es wird zur Datenextraktion in bestimmten Mustern verwendet. Es wurde in den 1970er Jahren von den Bell Labs von Alfred Aho, Peter Weinberger und Brian Kernighan entwickelt (die Initialen ihrer Nachnamen gaben den Namen). Die Entwicklung von awk hat hier nicht aufgehört. 1985 wurde eine neue Version eingeführt, die neue Änderungen am awk-Befehl mit sich brachte, einschließlich der Fähigkeit, mehrere Eingabeströme, berechnete reguläre Ausdrücke, benutzerdefinierte Funktionen und vieles mehr zu verarbeiten! Kurz gesagt, das Update hat es zu einer leistungsfähigeren Programmiersprache gemacht.

Awk hat eine andere Implementierung. Um sicherzustellen, dass es eine geeignete Implementierung gibt, die einen Standardansatz bietet, schrieb Paul Rubin 1986 gawk. Es funktionierte gut mit dem neueren awk.

Abgesehen davon wurden im System V Release von 1989 neue Funktionen hinzugefügt. Die Entwickler haben auch die dunklen Ecken verbessert, sodass Programmierer und Benutzer sie besser verwenden können. Die letzte Änderung erfolgte 1997, als awk den Netzwerkzugriff sah – und den Benutzern die Möglichkeit gab, Probleme aus der Ferne zu lösen.

Die letzte Überarbeitung erfolgte 2011, als John Haque die Gawk-Interna neu schrieb.

Dinge, die Sie mit AWK machen können

Inzwischen sollte einigermaßen klar sein, wozu AWK fähig ist. Es ist eine Allzweck-Skriptsprache, mit der Sie die Textverarbeitung handhaben können. Fortgeschrittene Benutzer können es auch für Analysen und Berichte verwenden.

AWK ist nicht wie andere Programmiersprachen, da es datengesteuert und keine prozedurale Programmiersprache ist. Das bedeutet, dass Sie es effektiv verwenden können, um Aktionen gegen Texteingaben auszuführen. Kurz gesagt, Sie können damit Daten transformieren, eingeben und auch als Standardausgabe senden.

Kurz gesagt, Sie können AWK verwenden, um einfache Operationen auszuführen, wie z. B. jede Eingabezeile in Felder aufzuteilen, eine Datei Zeile für Zeile zu scannen, eine oder mehrere Aktionen für Übereinstimmungszeilen auszuführen und so weiter! Der awk-Befehl ist auch nützlich für Berichte im Prozedurformat und transformiert Datendateien. Darüber hinaus erhalten Sie auch Zugriff auf Programmierkonstrukte wie Bedingungs- und Schleifen, Zeichenfolgen- und arithmetische Operationen sowie Formatausgabezeilen.

Wie awk funktioniert

In diesem Abschnitt werden wir lernen, wie awk funktioniert. Es ist wichtig zu wissen, dass awk verschiedene Implementierungen hat. Um sicherzustellen, dass wir auf derselben Seite sind, werden wir die GNU-Implementierung diskutieren und verwenden – die im Volksmund als gawk bekannt ist. In den meisten Fällen ist gawk mit dem awk-Interpreter verknüpft.

Um ein gutes Verständnis zu erlangen, müssen wir zuerst die Datensätze und Felder verstehen.

Es ist allgemein bekannt, dass awk Textströme und Datendateien verarbeiten kann. Zur Verarbeitung der Daten wird die Eingabe in Felder und Datensätze aufgeteilt. Damit awk nicht überfordert wird, wird immer nur ein Datensatz verarbeitet, bis das Ende der Eingabe erreicht ist. Darüber hinaus werden die Datensätze unter Verwendung eines Datensatztrennzeichens, das Zeichen verwendet, weiter in einfache Abschnitte unterteilt. Außerdem wird jeder Datensatz durch Zeilenumbruchzeichen getrennt. Das bedeutet, dass jede Zeile als Datensatz bezeichnet werden kann.

Sie können mit der RS-Variablen ein neues Datensatztrennzeichen festlegen.

Als nächstes kommt das abgelegte Trennzeichen. Wie üblich hat jeder Datensatz Felder, die durch das Feldtrennzeichen getrennt werden. Das Feldtrennzeichen kann Leerzeichen, Tabulatoren, Zeilenumbruchzeichen und Leerzeichen sein. Außerdem wird auf jedes Feld mit dem $-Symbol verwiesen, wobei die Feldnummer mit 1 beginnt. Das bedeutet, dass das erste Feld als $1 bezeichnet werden kann, während das zweite Feld als $2 bezeichnet wird. Auf diese Weise kann das n-te Feld als $nf bezeichnet werden.

Das awk-Programm

Der zweite Aspekt von awk ist das Programm awk. Wenn Sie mit awk arbeiten möchten, müssen Sie ein Programm schreiben, das den Befehl ausführen oder den Text verarbeiten lässt. Das awk-Programm bietet viele Funktionen mit Hilfe von Regeln und benutzerdefinierten Funktionen. Die Regeln arbeiten mit Aktionspaaren oder einem Muster, und die Regeln werden durch Semikolons oder Zeilenumbrüche getrennt.

Falls Sie sich fragen, ein awk-Programm sieht wie folgt aus.

pattern { action }
pattern { action }
....

Kurz gesagt, das awk-Programm funktioniert, indem es die Datensätze auf der Grundlage von Mustern abgleicht. Wenn das Muster im Datensatz gefunden wird, wird es verarbeitet. Wenn nicht, wird der gesamte Datensatz abgeglichen, um sicherzustellen, dass etwas auf der Grundlage von Regeln übereinstimmt.

awk-Befehlsbeispiele

Nachdem wir nun den awk-Befehl und seine Funktionsweise gut verstanden haben, ist es an der Zeit, einige der awk-Befehlsbeispiele anzusehen.

Wenn Sie awk noch nie zuvor verwendet haben, möchten Sie vielleicht wissen, dass awk mit folgenden Optionen verwendet werden kann:

awk options program file

Zu den Optionen, die Sie mit awk verwenden können, gehören die folgenden:

  • – f file:Wird verwendet, um die Datei anzugeben, die das awk-Skript enthält
  • -F fs:Wird verwendet, um das Dateitrennzeichen anzugeben.
  • -v var=value:Wird verwendet, um eine Variable zu deklarieren.

Beispiel 1:AWK-Skripte lesen

Eine der häufigsten Arten der Verwendung von awk ist das Lesen von Skripten. Als Linux-Benutzer können Sie mithilfe der einfachen Anführungszeichen ein awk-Skript erstellen.

Dazu müssen Sie im Terminal den folgenden Befehl eingeben.

$awk '{print "Welcome to Hello, World -- AWK tutorial"}'

Was Sie im obigen Beispiel eingeben, wird an den Bildschirm selbst zurückgegeben. Der Befehl wird so lange ausgeführt, bis Sie ihn durch Drücken von STRG + D beenden.

Beispiel 2:Verwenden mehrerer Befehle

Eine weitere häufige Verwendung von awk ist die Verwendung mehrerer Befehle. Als Benutzer möchten Sie möglicherweise zwei awk-Befehle zu einem kombinieren, um das gewünschte Ergebnis zu erzielen. In diesem Beispiel geben wir einen String aus und ersetzen dann das zweite Wort im String durch eine neue Eingabe.

$echo "Hello World" | awk '{$2 = "Universe; print $0"}'

Im obigen Beispiel haben wir zuerst „Hello, World“ an das Terminal zurückgesendet. Als nächstes haben wir einen weiteren awk-Befehl verkettet, bei dem wir das zweite Wort durch Universe ersetzt haben – und dann schließlich die Zeichenfolge ausgegeben, die Hello Universe lautet.

Beispiel 3:Variable verwenden

Mit Variablen können Sie Informationen speichern und darauf zugreifen. Wenn Sie bereits Programmiersprachen verwendet haben, kennen Sie diese sicherlich. Im Fall von awk verwenden Sie es, um Textdateien zu verarbeiten. Mithilfe der Variablen können Sie wie unten beschrieben auf bestimmte Datenfelder in der Datei zugreifen.

Zu diesem Zweck haben wir eine neue Textdatei, mynewfile, erstellt, in die wir einige zufällige, aber schöne Zeilen eingeben.

Als nächstes müssen Sie den Befehl ausführen, wie unten gezeigt.

awk '{print $1}' mynewfile

Wie Sie sehen können, gibt es diese bestimmte Variable aus, die dieses Feld aus der Datei anzeigt. Außerdem sollten Sie den Fehler sehen, den ich gemacht habe.

Beispiel 4:AWK-Vorverarbeitung

Mit dem awk-Befehl können Sie eine Vorverarbeitung hinzufügen. Dazu müssen Sie das Schlüsselwort BEGIN verwenden.

Wenn Sie sorgfältig lesen, haben wir oben eine neue Datei erstellt. Versuchen wir, die awk-Vorverarbeitung zu verwenden, um den Inhalt der Datei anzuzeigen.

Der Befehl dafür lautet wie folgt.

awk 'awk BEGIN {print "The content of the file:"}
> {print $0}' , mynewfile

Der obige Beispiel-Screenshot ist nicht korrekt. Ich habe „Begin“ anstelle von „BEGIN“ verwendet, weshalb die Druckanweisung nicht ausgeführt wird. Ich überlasse es Ihnen, es auszuprobieren und zu sehen, wie Ihr Ergebnis aussieht!

Beispiel 5:Skript aus Datei lesen

Dieser ist knifflig. Hier können Sie das awk-Skript verwenden, um eine Datei zu lesen.

Wir erstellen ein neues Skript, das Folgendes enthält.

{print $1 "universe starts at " $6"}

Wir haben die Datei als Newscript gespeichert.

Führen Sie nun den folgenden Befehl am Terminal aus.

$awk -F: -f newscript /etc/passwd

Faszinierend, richtig!

Beispiel 6:AWK-Nachbearbeitung

Als nächstes werfen wir einen Blick auf die AWK-Nachbearbeitung. Es funktioniert ähnlich wie die Vorverarbeitung, aber dieses Mal verwendet die Nachverarbeitung den END-Befehl.

$ awk 'BEGIN {print "The file content starts now:"}
>
> {print $0}
>
> END {print "The File ends"}' mynewfile

Beispiel 7:Benutzerdefinierte Variablen

Sie können innerhalb des awk-Befehls auch Variablen verwenden, ohne eine Zahl oder ein Dollarzeichen zu verwenden.

Unten ist ein Beispiel.

$awk '
BEGIN{
test = "Welcome to FossLinux Awesome Linux Family"
print test
}
'

Beispiel 8:Eingebaute Funktionen

Auch die awk-Befehle sind mit ihren eingebauten Funktionen praktisch. Sie können beispielsweise mathematische Funktionen sowie String-Funktionen verwenden.

$ awk 'BEGIN {x - "fossLinux"; print toupper(x)}'
$ awk 'BEGIN {x=exp(35); print x}'

Beispiel 9:Drucken formatieren

Sie können auch die mit awk gelieferte printf-Funktion formatieren. Es gibt viele Modifikatoren, die Sie verwenden können. Zum Beispiel können Sie c verwenden, um als Zeichenfolge auszugeben; Sie können auch d für einen ganzzahligen Wert verwenden usw.

$ awk 'BEGIN {
x = 200 * 200
printf "The result is: %e\n", x
}'

Beispiel 10:Strukturierte Befehle

Sie können auch strukturierte Befehle wie if, else, while oder for loop verwenden. Sehen wir uns das folgende Beispiel für den if-Befehl an.

$ awk '{if ($1 > 20) print $2}' mynewfile

Schlussfolgerung

Dies führt uns zum Ende unseres awk-Befehls-Tutorials. Fanden Sie es nützlich und werden Sie es für Ihre Arbeit verwenden? Kommentieren Sie unten und lassen Sie es uns wissen.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Linux Tee-Befehl mit Beispielen

  4. Linux-Kopfbefehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Neustartbefehl unter Linux mit Beispielen

Linux-IP-Befehl mit Beispielen