Website-Suche

So lesen Sie Awk-Eingaben von STDIN unter Linux – Teil 7


In den vorherigen Teilen der Awk-Tool-Reihe haben wir uns mit dem Lesen von Eingaben hauptsächlich aus einer oder mehreren Dateien befasst. Was aber, wenn Sie Eingaben aus STDIN lesen möchten?

In diesem Teil 7 der Awk-Reihe werden wir uns einige Beispiele ansehen, in denen Sie die Ausgabe anderer Befehle filtern können, anstatt Eingaben aus einer Datei zu lesen.

Wir beginnen mit dem Dienstprogramm dir, das ähnlich wie der Befehl ls funktioniert. Im ersten Beispiel unten verwenden wir die Ausgabe des Befehls dir -l als Eingabe für Awk, um den Benutzernamen, den Gruppennamen und die Dateien des Besitzers auszugeben /sie besitzt im aktuellen Verzeichnis:

dir -l | awk '{print $3, $4, $9;}'

Schauen Sie sich ein weiteres Beispiel an, in dem wir awk-Ausdrücke verwenden. Hier möchten wir Dateien drucken, die dem root-Benutzer gehören, indem wir einen Ausdruck zum Filtern von Zeichenfolgen verwenden, wie im folgenden awk-Befehl:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Der obige Befehl enthält den Vergleichsoperator (==), der uns dabei hilft, Dateien im aktuellen Verzeichnis herauszufiltern, deren Eigentümer der Root-Benutzer ist. Dies wird mit dem Ausdruck $3== ”root ” erreicht.

Schauen wir uns ein weiteres Beispiel an, bei dem wir einen awk-Vergleichsoperator verwenden, um eine bestimmte Zeichenfolge abzugleichen.

Hier haben wir das Dienstprogramm cat verwendet, um den Inhalt einer Datei mit dem Namen tecmint_deals.txt anzuzeigen, und wir möchten nur die Deals vom Typ Tech anzeigen, also führen wir das aus folgende Befehle:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

Im obigen Beispiel haben wir den Wertvergleichsoperator ~ /pattern/ verwendet, aber es gibt zwei Befehle, mit denen wir versuchen, etwas sehr Wichtiges hervorzuheben.

Wenn Sie den Befehl mit dem Muster tech ausführen, wird nichts ausgedruckt, da es keinen Deal dieser Art gibt, aber mit Tech erhalten Sie Deals von Typ Tech.

Seien Sie also immer vorsichtig, wenn Sie diesen Vergleichsoperator verwenden. Wie wir oben gesehen haben, muss die Groß-/Kleinschreibung beachtet werden.

Sie können stattdessen jederzeit die Ausgabe eines anderen Befehls als Eingabe für awk verwenden, anstatt die Eingabe aus einer Datei zu lesen. Dies ist sehr einfach, wie wir in den obigen Beispielen gesehen haben.

Ich hoffe, die Beispiele waren klar genug, damit Sie sie verstehen. Wenn Sie Bedenken haben, können Sie diese über den Kommentarbereich unten äußern. Schauen Sie sich auch den nächsten Teil der Serie an, in dem wir uns mit den awk-Funktionen befassen wie Variablen, numerische Ausdrücke und Zuweisungsoperatoren.