Top 10 Awesome AWK -Befehlsbeispiele

Top 10 Awesome AWK -Befehlsbeispiele
Der Befehl awk ist ein leistungsstarkes Tool zur Verarbeitung von Daten. Es wird Eingabedaten erhält, manipuliert sie und liefert Ergebnisse bei der Standardausgabe. Verschiedene Vorgänge können an Zeilen und Spalten einer Datei ausgeführt werden.

Das Wissen des Befehls „awk“ ist sehr wichtig, wenn es darum geht, Daten effizient zu verarbeiten, und dieser Beitrag deckt die wichtigsten Merkmale des Befehl „awk“ ab. Lassen Sie uns zuerst die Syntax überprüfen:

$ awk [Optionen] [Datei]

Einige der häufig verwendeten Optionen sind in der folgenden Tabelle angegeben:

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

Schauen wir uns einige Beispiele über die Verwendung des Befehls „awk“ an, und zur Demonstration habe ich eine Textdatei mit dem Namen von erstellt Testdatei.txt:

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

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

$ cat Testdatum.txt

Verwenden Sie nun, um die zweite Spalte der Datei zu drucken:

$ awk 'print $ 2' testfile.txt

Verwenden Sie den Befehl, um mehr als ein Felder zu drucken, um den Befehl zu drucken:

$ awk 'print $ 1, $ 2, $ 3' TestFile.txt

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

$ awk 'drucken $ 1 $ 2 $ 3' testfile.txt

So verwenden Sie den regulären Ausdruck mit dem Befehl awk:

Um den Saiten oder einem Ausdruck zu entsprechen, verwenden wir Slashes "//", zum Beispiel, wenn Sie die Namen von Personen, die „Geschichte“ studieren, drucken möchten, dann verwenden Sie:

$ awk '/ history/ drucken $ 2' testfile.txt

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

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

Um den Inhalt eines bestimmten Feldes zu entsprechen, kann der relationale Ausdruck verwendet werden. Um eine Zeichenfolge oder einen Ausdruck mit einem Feld zu entsprechen, geben Sie das Feld an und verwenden Sie den Vergleich „~“ Operator mit dem im folgenden Befehl angegebenen Muster:

$ awk '$ 3 ~/ is/ drucken $ 2' testfile.txt

Die obige Ausgabe zeigt jedes Feld in Spalte 2 gegen jedes Feld an, das in Spalte 3 „IS“ enthält.

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

$ awk '$ 3! ~/ is/ print $ 2 'TestFile.txt

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

$ awk '$ 4> 70 drucken $ 2' testfile.txt

Die Ausgabe hat die Namen von Personen gedruckt, die Markierungen von mehr als 70 bekommen haben.

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 folgenden Befehl dargestellt:

$ awk '/joel/,/marlene/drucken $ 3' testfile.txt

Die Ausgabe zeigt die Probanden des Bereichs von „Joel“ bis „Marlene“ aus Spalte 2. Wir können das doppelte gleiche Zeichen "==" verwenden, um einen Bereich zu definieren. Siehe das Beispiel unten:

$ awk '$ 4 == 80, $ 4 == 90 drucken $ 0' TestFile.txt

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

So kombinieren Sie das Muster mit dem logischen Operator:

Durch die Verwendung von logischen Operatoren wie oder "||" und "&&" können Sie Muster für die Suche kombinieren. Verwenden Sie den folgenden Befehl

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'Testdata.txt

Der obige Befehl druckt die Namen der Menschen gegen das vierte Feld signifikant als 80 und das sechste Feld größer als 0.4. Und nur zwei Aufzeichnungen erfüllen die Bedingung.

Der awk -Befehl Spezialausdrücke:

Es gibt zwei besondere Ausdrücke, “START" Und "ENDE”:

Beginnen Sie: Um eine Aktion auszuführen, bevor die Daten verarbeitet werden

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

$ awk 'begin print "verarbeiten hat begonnen"; print $ 2; End Print "Verarbeitung wurde beendet" 'testfile.txt

Die nützliche integrierte Variable des awk-Befehls:

Der Befehl awk enthält verschiedene Variablen, die bei der Datenverarbeitung helfen:

Variable Beschreibung
Nf Es gibt die Anzahl der Felder in den Daten
Nr Es gibt die Anzahl des aktuellen Datensatzes
DATEINAMEN Zeigt den Namen der derzeit verarbeiteten Datei an
Fs und von Feldabscheider und Ausgangsfeldabscheider
RS und Ors Trennt den Datensatz- und Ausgangsdatensatzabscheider

Zum Beispiel:

$ awk 'end drucken "Der Dateiname" ist Dateiname "Has" nf "Felder und" nr "Records"' testfile.txt

Wir verwenden "Ende", aber wenn Sie "Beginn" verwenden, würde die Ausgabe 0 Felder und 0 Datensätze geben.

So ändern Sie den Rekordtrennzeichen:

Das Standardabscheider im Datensatz ist normalerweise Platz; Wenn es ein Komma „“ oder Punkt gibt “.Verwenden Sie als Feldabscheider die Option „FS“ zusammen mit dem Trennzeichen.

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

$ cat TestFile2.txt
$ awk 'begin fs = ”:” print $ 2' testFile2.txt

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

Das "-f" kann auch verwendet werden:

$ awk -f “:’ 'print $ 2' TestFile2.txt

Das Standard -Datensatzabscheider ist "Newline" und um den Datensatzseparator auf ":" zu setzen, verwenden Sie:

$ awk 'begin rs = ”:” drucken $ 1' testFile2.txt

Awk Aktionen:

AWK-Aktionen sind winzige Programme, die von „“ -Krackets umgeben sind und mehr als eine Anweisung durch Semikolons „“ getrennt sind;;.

Die am häufigsten verwendete Anweisung mit dem Befehl "awk" ist die Anweisung "Print". Verwenden Sie beispielsweise einen Text mit jedem Datensatz, um eine Textzeichenfolge in Zitaten zu verwenden:

$ awk '"Das ist ein Feld", $ 2' TestFile.txt

Führen Sie eine einfache Summenoperation mit awk durch:

$ awk 'sum += $ 4 end printf "%d \ n", sum' Testdata.txt

Erstellen eines awk -Programms:

Beginnen wir mit der „awk“ -Programmierung. Die unten angegebene Programmierung führt einfach zu einer Multiplikation:

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

Drucken Sie "Die Multiplikation von 2 mit" j "is" i*J;
J++

Speichern Sie das Programm mit dem Namen von “Mycode.awkUnd um es auszuführen, offenes Terminal und Typ: Typ:

$ awk -f mycode.awk

Abschluss:

Der Befehl „awk“ ist ein praktischer Befehl, um Daten von Textdateien zu verarbeiten, z. B. das Trennen eines bestimmten Feldes einer Datei. Wir verwenden den Befehl "awk". Es erleichtert es, etwas in irgendeiner Form oder Muster aus den Textdateien zu durchsuchen. In diesem Leitfaden verstehen wir die Grundlagen des Befehls „awk“ und deren Verwendung. Der Befehl „awk“ bestätigt Daten, generiert Berichte und Parse -Dateien. Durch die Verwendung einfacher Befehle „awk“ können Benutzer auch winzige Programme schreiben, um Daten effizienter zu verarbeiten.