Awk

10 fantastische Beispiele für Awk-Befehle

10 fantastische Beispiele für Awk-Befehle
Der Befehl Awk ist ein leistungsstarkes Werkzeug zum Verarbeiten von Daten. Es ruft Eingabedaten ab, manipuliert sie und liefert Ergebnisse in der Standardausgabe. An Zeilen und Spalten einer Datei können verschiedene Operationen ausgeführt werden.

Es ist sehr wichtig, die Grundlagen des Befehls „awk“ zu kennen, wenn es darum geht, Daten effizient zu verarbeiten, und dieser Beitrag behandelt die wichtigsten Funktionen des Befehls „awk“. Lassen Sie uns zuerst die Syntax überprüfen:

$ awk [Optionen] [Datei]

Einige der am häufigsten verwendeten Optionen sind in der folgenden Tabelle aufgeführt:

Möglichkeit Beschreibung
-F So geben Sie ein Dateitrennzeichen an
-f Geben Sie die Datei an, die das „awk“-Skript enthält
-v Variable zuweisen

Schauen wir uns einige Beispiele zur Verwendung des Befehls „awk“ an, und zur Demonstration habe ich eine Textdatei mit dem Namen erstellt testDatei.TXT:

1. So drucken Sie eine Spalte einer Datei mit dem Befehl awk?

Der Befehl „awk“ kann verwendet werden, um eine bestimmte Spalte der Textdatei zu erhalten. Um den Inhalt der Datei zu drucken, verwenden Sie:

$cat Testdatei.TXT

Um nun die zweite Spalte der Datei zu drucken, verwenden Sie:

$awk 'print $2' testFile.TXT

Um mehr als ein Feld zu drucken, verwenden Sie den Befehl:

$awk 'print $1,$2,$3' testFile.TXT

Wenn Sie das Komma nicht verwenden, erfolgt die Ausgabe ohne Leerzeichen:

$awk 'print $1$2$3' testFile.TXT

2. So verwenden Sie einen regulären Ausdruck mit dem Befehl awk:

Um die Zeichenfolgen oder einen beliebigen Ausdruck zu finden, verwenden wir Schrägstriche „//“, wenn Sie beispielsweise die Namen von Personen ausgeben möchten, die „Geschichte“ studieren, verwenden Sie:

$awk '/History/ print $2' testFile.TXT

Die Ausgabe zeigt deutlich, dass nur „Sam“ und „Tommy“ den Kurs „Geschichte“ studieren.

3. So verwenden Sie den relationalen Ausdruck mit dem Befehl „awk“:

Um den Inhalt eines bestimmten Felds abzugleichen, kann ein relationaler Ausdruck verwendet werden. Um eine beliebige Zeichenfolge oder einen Ausdruck mit einem Feld abzugleichen, geben Sie das Feld an und verwenden Sie den Vergleichsoperator „~“ mit dem Muster, wie im folgenden Befehl dargestellt:

$awk '$3 ~/is/ print $2' testFile.TXT

Die obige Ausgabe zeigt jedes Feld in Spalte 2 gegen jedes Feld an, das "ist" in Spalte 3 enthält.

Und um die entgegengesetzte Ausgabe des obigen Befehls zu erhalten, verwenden Sie „! ~” Operator:

$awk '$3! ~/is/ print $2' testFile.TXT

Zum Vergleich können wir auch Operatoren wie größer als „>“ und kleiner als „<” and equal “=” as well:

$awk '$4>70 print $2' testFile.TXT

Die Ausgabe hat die Namen von Personen gedruckt, die Noten von mehr als 70 . erhalten haben.

4. So verwenden Sie das Bereichsmuster mit dem Befehl awk:

Ein Bereich kann auch für die Suche verwendet werden; Verwenden Sie einfach das Komma „“, um den Bereich zu trennen, wie im unten genannten Befehl dargestellt:

$awk '/Joel/, /Marlene/ print $3' testFile.TXT

Die Ausgabe zeigt die Themen des Bereichs von „Joel“ bis „Marlene“ aus Spalte 2. Wir können das doppelte Gleichheitszeichen „==“ verwenden, um einen Bereich zu definieren; siehe das Beispiel unten:

$awk '$4 == 80, $4 == 90 print $0' testFile.TXT

Die Ausgabe zeigt die Namen der Personen aus Spalte 2 für den Notenbereich „70 bis 80“ aus Spalte 4.

5. So kombinieren Sie Muster mit einem logischen Operator:

Die Verwendung logischer Operatoren wie ODER „||“, UND „&&“ ermöglicht es Ihnen, Muster für die Suche zu kombinieren. Verwenden Sie den folgenden Befehl

$awk '$4>80 && $6>0.4 Drucke $2' Testdatei.TXT

Der obige Befehl druckt die Namen der Personen gegen das vierte Feld, das höher als 80 ist und das sechste Feld größer als 0.4. Und nur zwei Datensätze erfüllen die Bedingung.

6. Die Sonderausdrücke des awk-Befehls:

Es gibt zwei spezielle Ausdrücke, „START" und "ENDE“:

BEGIN: Um eine Aktion auszuführen, bevor Daten verarbeitet werden

ENDE: Um eine Aktion auszuführen, nachdem die Daten verarbeitet wurden

$awk 'BEGIN print “Verarbeitung hat begonnen”; $2 drucken; END print “Verarbeitung ist beendet”' testFile.TXT

7. Die nützliche eingebaute Variable des awk-Befehls:

Der Befehl awk hat verschiedene Variablen, die bei der Datenverarbeitung helfen:

Variable Beschreibung
NF Es gibt die Anzahl der Felder in den Daten an
NR Gibt die Nummer des aktuellen Datensatzes an
DATEINAME Zeigt den Namen der Datei an, die gerade verarbeitet wird
FS und OFS Feldtrennzeichen und Ausgabefeldtrennzeichen
RS und ORS Trennt den Datensatz und das Ausgabe-Datensatztrennzeichen

Beispielsweise:

$awk 'ENDprint "Der Dateiname ist " FILENAME "hat" NF "Felder und" NR "Records"' testFile.TXT

Wir verwenden "END", aber wenn Sie "BEGIN" verwenden, würde die Ausgabe 0 Felder und 0 Datensätze ergeben.

8. So ändern Sie das Datensatztrennzeichen:

Das Standardtrennzeichen im Datensatz ist normalerweise Leerzeichen; wenn ein Komma „“ oder ein Punkt“ vorhanden ist.“ als Feldtrennzeichen, dann verwenden Sie die Option „FS“ zusammen mit dem Trennzeichen.

Lassen Sie uns eine andere Datei haben, in der Datenfelder durch einen Komma-Doppelpunkt „:“ getrennt sind:

$cat testFile2.TXT
$awk 'BEGIN FS= “:” print $2' testFile2.TXT

Da das Trennzeichen der Datei ein Doppelpunkt ist, aber der Befehl „awk“ sogar für solche Dateien von Vorteil ist, verwenden Sie einfach die Option „FS“.

Das „-F“ kann auch verwendet werden:

$awk -F “:” 'print $2' testFile2.TXT

Das standardmäßige Datensatztrennzeichen ist „newline“, und um das Datensatztrennzeichen auf „:“ zu setzen, verwenden Sie:

$awk 'BEGIN RS = “:”print $1' testFile2.TXT

9. Awk-Aktionen:

Awk-Aktionen sind winzige Programme, die von „“-Klammern umgeben sind und mehr als eine Anweisung haben, die durch Semikola getrennt ist“;“.

Die am häufigsten verwendete Anweisung mit dem Befehl „awk“ ist die Anweisung „print“. Um beispielsweise einen Text mit jedem Datensatz zu drucken, verwenden Sie die Textzeichenfolge in Anführungszeichen:

$awk '"Das ist ein Feld", $2' Testdatei.TXT

Lassen Sie uns eine einfache Summenoperation mit awk durchführen:

$awk 'sum += $4 END printf “%d\n”, sum' testFile.TXT

10. Erstellen eines awk-Programms:

Beginnen wir mit der „awk“-Programmierung, die unten angegebene Programmierung ist einfach eine Multiplikation:

START
i=2
während(j<4)

print „Die Multiplikation von 2 mit „j“ ist „i*j;
j++

Speichern Sie das Programm unter dem Namen „myCode.awk“ und um es auszuführen, öffnen Sie das Terminal und geben Sie Folgendes ein:

$awk -f myCode.awk

Fazit:

Der Befehl „awk“ ist ein praktischer Befehl, um Daten von Textdateien zu verarbeiten und zu scannen, z. B. um ein bestimmtes Feld einer Datei zu trennen; wir verwenden den „awk“-Befehl. Es macht es einfacher, alles in jeder Form oder jedem Muster in den Textdateien zu suchen. In diesem Handbuch verstehen wir die Grundlagen des Befehls „awk“ und seine Verwendung. Der Befehl „awk“ validiert Daten, generiert Berichte und analysiert sogar Dateien. Mit einfachen Befehlen „awk“ können Benutzer auch winzige Programme schreiben, um Daten effizienter zu verarbeiten.

Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...