Also benötigen wir einen regulären Ausdruck, der den Slash am Zeilenanfang(^) sucht. Schreiben wir
df | awk '/^\// {print}'
so bekommen wir nur die Zeilen, deren erstes Zeichen der Slash ist. Wir mussten den Slash hier mit einem Backslash maskieren, damit awk ihn nicht als Ende des regulären Ausdrucks wertet. Wenn wir jetzt z. für ein Backup wissen wollen, wieviele Blöcke insgesamt benutzt sind, so können wir mit awk und den BEGIN und END Anweisungen einfach die entsprechenden Felder zusammenzuzählen:
df | awk 'BEGIN {zahl=0}; /^\// {zahl+=$3}; \
END {printf("Insgesamt%d KByte belegt \n", zahl)}'
Was passiert hier? Linux awk beispiele download. Nun im ersten Muster {Aktion} Paar ist das Muster BEGIN. Diese Anweisung wird nicht für jede Zeile ausgeführt, sondern nur einmal, vor der Abarbeitung der Zeilen. Die Aktion ist zahl=0. Wir setzen eine Variable zahl auf den Wert 0. Das zweite Anweisungspaar ist ein normales Paar, das auf alle Zeilen angewand wird, die auf das Muster passen. Das Muster ist das oben schon besprochene, also "Alle Zeilen, die mit einem Slash beginnen".
Linux Awk Beispiele Command
Die Ausgabe dieses awk-Befehls ist unten
# awk '{ if($3 == "arkit") print $0;}' test
For-Schleife mit Multiplikation des genannten Wertes, erhöht um +1
Befehlssyntax: awk 'BEGIN { for(i=1;i<=10;i++) print "Multiplizierter Wert von", i, "ist", i*i;}'
Der obige Befehl wird die Multiplikation der ersten Zahlen von 1 bis 10 ausgeben. Mit i++ wird +1 zur Zahl addiert, so dass sie sich bis 10 weiter erhöht. Die Ausgabe des Befehls ist unten zu sehen
# awk 'BEGIN { for(i=1;i<=10;i++) print "Multiplied value of", i, "is", i*i;}'Multiplied value of 1 is 1
6. Eingabefeld Trennzeichen
Sie haben bereits $0, $1, $2… gesehen, die die gesamte Zeile, erste Spalte, zweite Spalte… ausgeben. Jetzt sehen wir uns andere eingebaute Variablen mit Beispielen an. In unserer Beispieldatei test haben wir Spalten, die durch ein Leerzeichen getrennt sind, aber anstelle des Leerzeichens können wir auch jedes andere Symbol wie. d. h. :, – zum Trennen und Drucken verwenden. Bash - examples - Wie drucke ich Regexp-Matches mit `awk`?. Beispiel: Wenn Sie: (Doppelpunkt) als Trennzeichen haben, dann verwenden Sie unten
awk 'BEGIN {FS=":"} {print $2}' test
Oder
awk -F: '{print $2}' test
Damit wird die Ausgabe wie folgt gedruckt
# awk -F: '{print $2}' test41 file12
OFS – Ausgabefeld-Trennvariable
Standardmäßig werden beim Drucken der Felder mit der print-Anweisung die Felder mit einem Leerzeichen als Trennzeichen angezeigt.
Linux Awk Beispiele Internet
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. 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. Awk Beispiele | MG-IT. 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
Natürlich hätte das auch grep so erreichen können, aber awk kann wesentlich mehr. Aber betrachten wir einmal den Aufbau der awk Befehlszeile (die innerhalb der Hochkommas steht) genauer. Jeder einfache awk-Befehl hat die Struktur
Muster { Aktion}
In unserem Beispiel war also das Muster Peter und die Aktion in geschweiften Klammern hieß print. Das bedeutet, alle Zeilen der Datei, in denen das Wort Peter steckt sollen ausgegeben werden. Die Aktion wird grundsätzlich in geschweiften Klammern geschrieben, das Muster grundsätzlich ohne Klammern. So kann – falls eines der beiden weggelassen wurde – unterschieden werden, was was ist. Es können entweder das Muster oder die Aktion auch weggelassen werden. Wird das Muster weggelassen, so wird jede Zeile bearbeitet, wird die Aktion weggelassen, so wird print angenommen. Wir hätten also auch einfach schreiben können
awk 'peter'
OK, das war einfach. Linux awk beispiele internet. Es geht aber auch wesentlich mehr. Sehen wir uns die Struktur der Datei noch einmal genauer an. Jede Zeile besteht aus Feldern, die durch ein oder mehrere Leerzeichen voneinander getrennt sind.