actionbrowser.com
Wenn das dritte Feld 501 ist, geben wir das fünfte Feld (Klarname) aus. Natürlich kann awk noch viel mehr, inklusive Schleifenbildung, if-Anweisung und vieles andere. Diese ganzen Dinge zu beschreiben würde aber den Rahmen dieser Darstellung deutlich sprengen, ein kleiner Überblick ist aber doch gegeben.
Bawk Ausdruck { Anweisungen} Datei Ausdruck Der erste Parameter ist ein regulärer Ausdruck. Anweisungen Den zweiten Parameter stellen die awk-Anweisungen (anzugeben in geschweiften Klammern) dar. Diese Anweisungen legen fest, welche Manipulationen am Input-Stream durchgeführt werden sollen. Linux awk beispiele download. Datei Der Parameter Datei legt die Datei fest, aus der der Input-Stream gelesen werden soll. Ohne Angabe liest awk von der Standardeingabe oder aus einer Pipe. Beispiele Beispiel 1: 2. Spalte ausgeben (z. B. Prozess-ID bei grep) ps aux | grep suchstring | awk '{print $2}' Beispiel 2: alle Zeilen einer Datei mit dem Buchstaben "n" ausgeben: awk '/n/' /etc/group
letzte Änderung: 3. Jan 2015, 22:28 Veröffentlicht: 6. Linux awk beispiele en. Feb 2008, 20:18 Spaltenbearbeitung erste Spalte einer Datei anzeigen awk '{ print $1}' /PFAD/DATEI letzte Spalte einer Datei anzeigen awk '{ print $NF}' /PFAD/DATEI erste und letzte Spalte anzeigen awk '{ print $1, $NF}' /PFAD/DATEI die zweite Spalte wird gelöscht, alle anderen angezeigt awk '{ $2="";print}' /PFAD/DATEI Zeilenbearbeitung Achtung: awk arbeitet mit einem Zeilen-Index der bei Null beginnt, d. h. die erste Zeile hat den Index 0 (gerade) die zweite Zeile den Index 1 (ungerade). Zeilen mit ungeraden Zeilennummern ausgeben Zeilen mit geraden Zeilennummern ausgeben awk '(NR+1)%2' /PFAD/DATEI
Im nächsten Block wird der Wert der 7. Spalte zu der Variablen sum addiert. Dieses Hinzufügen der 7. Spalte zur Variablen sum wiederholt sich für jede verarbeitete Zeile. Awk Beispiele | MG-IT. Wenn alle Zeilen abgearbeitet sind, enthält die Summenvariable die Summe der Werte in der 7. Dieser Wert wird im End-Block gedruckt, wie unten gezeigt: # awk 'BEGIN {sum=0} {sum=sum+$7} END {print sum}' test300 Summe der Spaltenwerte mit awk-Skript Im zweiten Beispiel haben wir gesehen, wie man den Wert der Spalte 7 summiert, und zwar auf dieselbe Weise, anstatt in einer einzeiligen Anweisung, die wir als Skript schreiben. Erstellen Sie eine Datei sumofcolumn und fügen Sie das folgende Skript in diese Datei ein #! /usr/bin/awk -fBEGIN {sum=0} {sum=sum+$7} END {print sum} Nun führen Sie das Skript mit dem awk-Befehl aus, wie unten gezeigt # awk -f sumofcolumn test300 Damit wird das Skript in der Datei sumofcolumn ausgeführt und die Summe der siebten Spalte im Test angezeigt. String finden und übereinstimmende Zeile drucken Befehlssyntax: awk '{if($9 == "arkit") print $0;}' test Das obige Beispiel sucht nach dem String "arkit" in der dritten Spalte und wenn es eine Übereinstimmung findet, wird die gesamte Zeile gedruckt.
Ja, in awk benutze die Funktion match() und gebe ihr den optionalen Array-Parameter ( a in meinem Beispiel). Wenn Sie dies tun, ist das 0-te Element der Teil, der mit der Regex übereinstimmt $ echo "blah foo123bar blah" | awk '{match($2, "[a-z]+[0-9]+", a)}END{print a[0]}' foo123
Es enthält eine einzige Einheit, bestehend aus einem Vergleichsausdruck und einem Befehlsblock. Letzterer steht in geschweiften Klammern – hier ist es ein einziges Kommando, print $1, das das erste Feld der gelesenen Zeile ausgibt. Passt eine Eingabezeile auf den Vergleichsausdruck, wird sie in Felder zerlegt, und zwar von eins an aufsteigend durchnummeriert. Die erste Zeile von Listing 1 beispielsweise zerfällt in drei Felder, $1 = "Handy", $2 = "Preis" und $3 = "Gewicht". Falls Sie sie einmal brauchen, finden Sie die gesamte, unzerteilte Eingabezeile in der Variablen $0 wieder. Doch wo ist in unserem ersten Beispiel der Vergleichsausdruck? AWK - Grundlegende Beispiele. Er ist leer, und das bedeutet: Der zugehörige Befehlsblock wird auf jede Zeile der Datenquelle angewandt. Weder Programm noch Daten müssen sich übrigens je auf ein einziges Argument beschränken. Sie können mehrere Programmfragmente und auch Dateien, die AWK-Befehle enthalten, in beliebiger Folge angeben. Ebenso dürfen Sie mehrere Datenfiles angeben, die dann einfach nacheinander eingelesen werden.