Linux lernen

Linux awk-Befehl mit 10 Beispielen

Linux awk-Befehl mit 10 Beispielen

Computersysteme wurden schon immer verwendet, um wertvolle Daten zu analysieren, die in einfachen Textdateien gespeichert sind. Die Computersysteme selbst werden wiederum über Protokolldateien verwaltet. Was in diesen beiden Situationen möglicherweise üblich ist, ist, dass sie eine große Datenmenge enthalten, die oft optimiert werden muss, bevor die Daten tatsächlich gelesen werden. sonst ist es nur verwirrend.

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

Diese Anforderung war schon damals düster, und folglich enthält das GNU-Projekt ein erstaunliches Werkzeug, das Benutzern hilft, Daten für eine bessere Erfahrung zu filtern und zu extrahieren. Dieses Werkzeug ist AWK.

Geschichte

AWK ist eigentlich eine Programmiersprache, die sich der Textverarbeitung widmet. Es wird zur Datenextraktion in bestimmten Mustern verwendet used. 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 damit noch nicht aufgehört. 1985 wurde eine neue Version eingeführt, die neue Änderungen am Befehl awk 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 richtige Implementierung gibt, die einen Standardansatz bietet, schrieb Paul Rubin 1986 gawk. Mit dem neueren awk hat es gut geklappt.

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

Die letzte Neufassung im Jahr 2011, als John Haque die Gawk-Interna neu schrieb.

Dinge, die Sie mit AWK tun können

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

AWK ist nicht wie andere Programmiersprachen, da es datengesteuert ist und keine prozedurale Programmiersprache. 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 durchzuführen, wie z. B. jede Eingabezeile in Felder aufzuteilen, eine Datei Zeile für Zeile zu scannen, eine oder mehrere Aktionen auf Übereinstimmungszeilen durchzuführen und so weiter! Der Befehl awk ist auch für verfahrensformatierte Berichte nützlich und wandelt Datendateien um. Darüber hinaus erhalten Sie auch Zugriff auf Programmierkonstrukte wie Bedingungs- und Schleifen, String- und arithmetische Operationen und formatieren Ausgabezeilen.

So funktioniert awk

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

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

Es ist bekannt, dass awk Textstreams und Datendateien verarbeiten kann. Zur Verarbeitung der Daten wird die Eingabe in Felder und Datensätze unterteilt. Um sicherzustellen, dass awk nicht überfordert wird, wird zu jedem Zeitpunkt ein Datensatz verarbeitet, bis das Ende der Eingabe erreicht ist. Darüber hinaus werden die Datensätze mit einem Datensatztrenner mit Zeichen weiter in einfache Abschnitte unterteilt. Außerdem wird jeder Datensatz durch Zeilenumbrüche getrennt separated. 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 Feldtrennzeichen. Wie üblich hat jeder Datensatz Felder, die mit dem Feldtrennzeichen getrennt werden. Als Feldtrennzeichen können Leerzeichen, Tabulatoren, Zeilenumbrüche und Leerzeichen verwendet werden. Außerdem wird jedes Feld mit dem $-Symbol referenziert, während die Feldnummer mit 1 beginnt. Dies 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 awk-Programm. 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 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, sieht ein awk-Programm wie folgt aus.

Muster  Aktion  Muster  Aktion … 

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

awk-Befehlsbeispiele

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

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

awk options Programmdatei

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

Beispiel 1: AWK-Skripte lesen

Eine der gebräuchlichsten Methoden zur Verwendung von awk ist das Lesen von Skripten. Als Linux-Benutzer können Sie ein awk-Skript mit den einfachen Anführungszeichen erstellen.

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

$awk 'print "Willkommen bei Hallo Welt - AWK-Tutorial"'

Im obigen Beispiel wird das, was Sie eingeben, auf 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 vielleicht zwei awk-Befehle zu einem kombinieren, um das gewünschte Ergebnis zu erzielen. In diesem Beispiel geben wir eine Zeichenfolge aus und ersetzen dann das zweite Wort in der Zeichenfolge durch eine neue Eingabe.

$echo "Hallo Welt" | awk '$2 = "Universum; print $0"'

Im obigen Beispiel haben wir zuerst „Hello, World“ an das Terminal gesendet. 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 ist.

Beispiel 3: Variable verwenden

Mit Variablen können Sie Informationen speichern und darauf zugreifen. Wenn Sie schon einmal Programmiersprachen verwendet haben, kennen Sie sie sicherlich surely. Im Fall von awk verarbeiten Sie damit Textdateien. Mit den Variablen können Sie wie unten beschrieben auf bestimmte Datenfelder innerhalb der Datei zugreifen.

Zu diesem Zweck haben wir eine neue Textdatei erstellt, mynewfile, 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 Befehl awk können Sie eine Vorverarbeitung hinzufügen. Dazu müssen Sie das Schlüsselwort BEGIN verwenden.

Wenn Sie genau 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 ist wie folgt.

awk 'awk BEGIN print "Der Inhalt der Datei:" > print $0' , mynewfile

Der obige Beispiel-Screenshot ist nicht korrekt. Ich habe "Begin" anstelle von "BEGIN" verwendet, weshalb Sie die print-Anweisung nicht ausführen sehen. Das überlasse ich dir zum Ausprobieren und sehen, wie dein Ergebnis ausfällt!

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 "Universum beginnt bei " $6"

Wir haben die Datei als neues Skript 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 diesmal verwendet die Nachverarbeitung den Befehl END.

$ awk 'BEGIN print "Der Dateiinhalt beginnt jetzt:" > > print $0 > > END print "Die Datei endet"' mynewfile

Beispiel 7: Benutzerdefinierte Variablen

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

Unten ist ein Beispiel.

$awk ' BEGIN test = "Willkommen bei FossLinux Awesome Linux Family" print test  '

Beispiel 8: Integrierte Funktionen

Die awk-Befehle sind auch mit ihren integrierten Funktionen praktisch handy. Sie können beispielsweise mathematische Funktionen sowie String-Funktionen verwenden.

$ awk 'BEGINNEN x - "fossLinux"; toupper(x) drucken'
$ awk 'BEGINNEN x=exp(35); drucke 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. Sie können beispielsweise c verwenden, um als String auszugeben; Sie können auch d für einen ganzzahligen Wert verwenden und so weiter.

$ awk 'BEGIN  x = 200 * 200 printf "Das Ergebnis ist: %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

Fazit

Dies führt uns zum Ende unseres awk-Befehls-Tutorials. Also, fanden Sie es nützlich und werden Sie es für Ihre Arbeit verwenden?? Kommentiere unten und lass es uns wissen.

So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...
Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...