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.