Teneriffa Süd Abflug
Wenn eine Musterübereinstimmung erfolgreich ist, führt sie einen Befehl aus dem Bodyblock aus. Wenn kein Bodyblock vorhanden ist, wird eine Standardaktion ausgeführt, bei der der Datensatz gedruckt wird. Daher führt der folgende Befehl zum gleichen Ergebnis: [jerry]$ awk '/a/' Spalten nach Muster drucken Wenn eine Musterübereinstimmung erfolgreich ist, druckt AWK standardmäßig den gesamten Datensatz. Sie können AWK jedoch anweisen, nur bestimmte Felder zu drucken. Im folgenden Beispiel wird beispielsweise das dritte und vierte Feld gedruckt, wenn eine Musterübereinstimmung erfolgreich ist. [jerry]$ awk '/a/ {print $3 "\t" $4}' Spalte in beliebiger Reihenfolge drucken Sie können Spalten in beliebiger Reihenfolge drucken. Im folgenden Beispiel wird beispielsweise die vierte Spalte gefolgt von der dritten Spalte gedruckt. Linux awk beispiele chrome. [jerry]$ awk '/a/ {print $4 "\t" $3}' Wenn Sie den obigen Code ausführen, erhalten Sie das folgende Ergebnis: 90 Maths 87 Biology 85 English 89 History Übereinstimmende Muster zählen und drucken Lassen Sie uns ein Beispiel sehen, in dem Sie die Anzahl der Zeilen zählen und drucken können, für die eine Musterübereinstimmung erfolgreich war.
Der Name AWK steht für die drei Autoren dieses Programms, Aho, Weinberger und Kernighan. Das Ziel dieses Tools war die Generation von einfachen Reports über textbasierte Datenbankdateien. Schnell wurde das Programm dann aber weiterentwickelt, so dass es heute eins der universellsten Hilfsmittel bei der Bearbeitung von Textdatenströmen ist. Einfache Beispiele Wie bei sed, so wird auch bei awk der eigentliche Programmtext (oder einfacher – die Befehle) entweder direkt auf der Kommandozeile mitgegeben, oder über eine separate Befehlsdatei. Aber was macht denn nun awk eigentlich? Beginnen wir mit einem simplen Beispiel. Nehmen wir an, die Datei hat den folgenden Inhalt: Hans Maier 35 1234. 56 Peter Müller 27 987. 65 Herbert Schmidt 34 1111. Awk Beispiele | MG-IT. 99 Leopold Lehrling 17 234. 99 Günter Geschäftsführer 56 12345. 89 Diese Datei ist also eine einfache textbasierte Datenbank, die die Felder Vorname, Name, Alter, Gehalt enthält. Mit awk können wir diese Datei wunderbar bearbeiten. Schreiben wir doch einmal awk 'peter {print}' Dann bekommen wir die Ausgabe der Zeile von Peter Müller.
Beide benötigen zwingend eine Aktion. Machen wir ein Beispiel. Diesmal werden wir keine Datei bearbeiten, sondern awk in einer Pipe verwenden. Wir lassen also einfach den Dateinamen weg. Das Programm df gibt uns eine Liste aller gemounteten Dateisysteme aus, inklusive der Angabe, wieviel Platz insgesamt verfügbar ist, wieviel belegt ist und wieviel noch frei. Eine typische Ausgabe von df sieht also etwa so aus: Dateisystem 1k-Blöcke Benutzt Verfügbar Ben% montiert auf /dev/hdc1 4032092 2735308 1091960 72% / /dev/hdd1 6346136 1394708 4951428 22% /usr /dev/hda2 15472800 5422804 9264016 37% /opt /dev/hdc3 1028124 260720 767404 26% /home /dev/vol0/volume1 806288 154352 610976 21% /tmp /dev/vol0/volume2 806288 16428 748900 3% /usr/local Na das riecht doch schon nach awk. Die Ausgabe besteht ja wieder eindeutig aus Feldern, die durch ein oder mehrere Leerzeichen voneinander getrennt sind. Nur die erste Zeile stört etwas, sie enthält Überschriften, keine Werte. Linux awk beispiele. Wie bekommen wir sie weg? Alle Zeilen außer der ersten Zeile beginnen mit einem Slash (/).