So lesen Sie awk Eingabe von stdin unter Linux - Teil 7

So lesen Sie awk Eingabe von stdin unter Linux - Teil 7

In den vorherigen Teilen der AWK -Tool -Serie haben wir uns meist aus der Datei ausgelesen, aber was ist, wenn Sie die Eingaben aus lesen möchten? Stdin.

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

Wir werden mit dem DIR -Dienstprogramm beginnen, das dem Befehl ls ähnlich funktioniert. Im ersten folgenden Beispiel verwenden wir die Ausgabe von Dir -l Befehl als Eingabe für awk, um den Benutzernamen, GroupName und die Dateien des Besitzers zu drucken, die er/sie im aktuellen Verzeichnis besitzt:

# dir -l | awk 'print $ 3, $ 4, $ 9;' 
Listen Sie Dateien des Benutzer im Verzeichnis auf

Schauen Sie sich ein anderes Beispiel an, in dem wir AWK -Ausdrücke verwenden. Hier möchten wir Dateien drucken Wurzel Benutzer, indem ein Ausdruck verwendet wird, um Zeichenfolgen wie im folgenden Befehl awk zu filtern:

# dir -l | awk '$ 3 == "root" print $ 1, $ 3, $ 4, $ 9;' 
Listen Sie Dateien auf, die von Root User gehörten

Der obige Befehl enthält die (==) Vergleichsbetreiber, um uns zu helfen, Dateien im aktuellen Verzeichnis herauszufiltern, das dem Root -Benutzer gehört. Dies wird unter Verwendung des Ausdrucks erreicht $ 3 == "Wurzel".

Lassen Sie uns ein weiteres Beispiel dafür betrachten, wo wir einen awk -Vergleichsbetreiber verwenden, um eine bestimmte Zeichenfolge zu entsprechen.

Hier haben wir das Cat -Dienstprogramm verwendet, um den Inhalt einer Datei namens anzuzeigen tecmint_deals.txt Und wir möchten die Geschäfte vom Typ sehen Technik Nur, also werden wir die folgenden Befehle ausführen:

# Cat tecmint_deals.txt # cat tecmint_deals.txt | awk '$ 4 ~ /tech /print' # cat tecmint_deals.txt | awk '$ 4 ~ /tech /print' 
Verwenden Sie awk -Vergleichsbetreiber, um die Zeichenfolge zu entsprechen

Im obigen Beispiel haben wir den Wert verwendet ~ /muster / Vergleichsbetreiber, aber es gibt zwei Befehle, um etwas sehr Wichtiges herauszubringen.

Wenn Sie den Befehl mit Muster ausführen Technik Nichts ist ausgedruckt, weil es keine gibt handeln dieser Art, aber mit Technik, Sie erhalten Geschäfte vom Typ Technik.

Seien Sie also immer vorsichtig, wenn Sie diesen Vergleichsbetreiber verwenden. Es ist geltendempfindlich, wie wir oben gesehen haben.

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

Ich hoffe, die Beispiele waren klar genug für Sie, um sie zu verstehen. Wenn Sie Bedenken haben, können Sie sie im folgenden Kommentarbereich ausdrücken und denken Sie daran, den nächsten Teil der Serie zu überprüfen, in dem wir uns ansehen werden awk Funktionen wie Variablen, Numerische Ausdrücke Und Zuordnungsbetreiber.