Was ist AWK NF?

Die „AWK“-Funktion ist ein Linux-Dienstprogramm, das zur Textanalyse verwendet wird und eine starke Datenkontrolle bietet. Zur Nutzung des Linux-Computerprogramms und der „AWK“-Funktion können Nutzer die aufbereiteten Ergebnisse auswerten, modifizieren und generieren. Die Variable „AWK NF“ wird verwendet, um anzuzeigen, wie viele Dateien, Elemente oder andere Elemente in einer Zeile einer Datei enthalten sind.

Arbeitsweise von AWK NF

Das Programm „AWK“ arbeitet mit Programmen, die Regeln enthalten, die aus verschiedenen Mustern und Aktionen bestehen, die auf Text ausgeführt werden, der dem Muster entspricht. Ein Muster und eine Aktion bilden zusammen eine Regel. Das gesamte „AWK“-Programm wird dann in ein einfaches Anführungszeichen eingeschlossen.

Jetzt verwenden wir nur ein einfaches Beispiel, um zu demonstrieren, was passiert, wenn wir „who“ im Ubuntu 20.04-Terminal eingeben. Dieser Befehl zeigt Informationen über den Benutzer sowie die aktuelle Uhrzeit und das aktuelle Datum an.

Linux@linux:~$ who

Wir führen diesen Befehl aus, indem wir auf der Tastatur die Eingabetaste drücken, wodurch Datum und Uhrzeit als „2022-12-08“ bzw. „15:06“ gedruckt werden, bevor einige Leerzeichen und der Name des Benutzers als „Linux“ veröffentlicht werden.

Standardmäßig interpretiert „AWK“ ein Feld als eine Zeichenfolge, die am Anfang und Ende einer Zeile in Leerzeichen eingeschlossen ist. Hier zeigen wir, wie man einen Befehl mit den Parametern „AWK“ und „who“ schreibt, um das erste Feld mithilfe des Dollarzeichens und der Zahl 1 ($1) abzurufen. Wenn wir das erste Feld aus einer Textdatei oder anderen Daten abrufen möchten, verwenden wir das Dollarzeichen „$1“ mit einem. Dazu verwenden wir den Befehl, in dem wir zunächst „who“ schreiben. Dann verwenden wir dieses „|“ Bar. Dann geben wir Leerzeichen ein, indem wir die Leertaste auf der Tastatur drücken. Wir schreiben dann „awk“. Dann verwenden wir ein Anführungszeichen, gefolgt von geschweiften Klammern. Schließlich verwenden wir das Wort „print“ und das Symbol „$1“ innerhalb dieser Klammern.

Linux@linux:~$ who | awk ‚{print $1}‘

Wie Sie im vorherigen Ausgabebild sehen können, zeigt es den Benutzernamen zusammen mit den erforderlichen Informationen an, einschließlich Datum und Uhrzeit, wenn wir im Terminal nur „who“ verwenden und dies ausführen. Da wir jedoch im vorherigen Befehl „print $1“ mit „AWK“ verwenden, wird nur das erste Feld gedruckt, da „$1“ unter anderem zum Drucken des ersten Felds der Datei verwendet wird.

Erstellen einer Textdatei auf dem Desktop mit dem Terminal und Drucken des gesamten Inhalts mit „AWK“

Da „AWK“ zum Drucken des gesamten Inhalts einer Datei auf dem Terminal verwendet wird, erstellen wir im ersten Schritt eine Textdatei und drucken die Informationen der Datei auf dem Terminal aus. Hier erstellen wir mit dem Terminal eine Textdatei auf dem Desktop. Dazu schreiben wir als Texteditor den Befehl, in dem wir „nano“ schreiben. Dann verwenden wir das Symbol (~) gefolgt vom Schrägstrich „/“. Dann schreiben wir „Desktop“, weil wir eine Datei auf dem Desktop erstellen, gefolgt vom Schrägstrich „/“. Anschließend schreiben wir erneut den Namen der Datei, die wir erstellen möchten. Schließlich erstellen wir eine Datei mit dem Namen „textfile“ mit der Erweiterung „.txt“, da es sich um eine Textdatei handelt.

Linux@linux:~$ nano ~/Desktop/textfile.txt

Daher zeigt uns ein Terminal einen leeren Bildschirm an, wenn wir diesen Befehl eingeben, wie im folgenden Bild gezeigt:

Wir geben die Daten ein, indem wir sie in das Terminal eingeben, die wir in der Textdatei speichern möchten. Dazu erstellen wir fünf Zeilen. Das erste davon enthält das Wort „Hallo“. Der zweite enthält „hey“. Der dritte enthält „hi“. Das vierte enthält zwei Elemente, „Auf Wiedersehen“ und „123“. Und die fünfte Zeile ist leer, wie im folgenden Bild gezeigt:

Wenn wir „Strg-x“ drücken, nachdem wir die Daten in die Datei „textfile.txt“ eingegeben haben, erscheint die Auswahl „Ja“ oder „Nein“ auf dem Bildschirm. Wir wissen, dass wir die Datei speichern möchten. Also drücken wir „Strg-y“, um die Datei zu speichern, und die Datei wird erfolgreich erstellt.

Das folgende Bild zeigt die angezeigte Datei:

Wie wir wissen, wird die Datei auf dem Desktop gespeichert. Wir müssen zunächst mit dem Befehl „cd Desktop/“ ein Verzeichnis zum Desktop hinzufügen und dann die Eingabetaste drücken.

Linux@linux:~$ cd Desktop/

Nun rufen wir mit der Funktion „AWK“ den Inhalt der neu erstellten Datei „textfile.txt“ ab und zeigen ihn auf dem Bildschirm an. Dazu verwenden wir den Befehl, in den wir zunächst „awk“ schreiben. Dann verwenden wir darin die Anführungszeichen. Wir setzen die geschweiften Klammern und schreiben „print $0“. Danach verwenden wir ein Leerzeichen. Zum Schluss schreiben wir den Dateinamen „textfile.txt“.

Linux@linux:~/Desktop$ awk ‚{print $0}‘ textfile.txt

Wenn wir nun diesen Befehl ausführen, wird der Inhalt der Textdatei angezeigt, wie Sie im folgenden Bild sehen können. Die erste Zeile dieser Datei enthält das Wort „Hallo“, gefolgt von „Hey“. Das Wort „hi“ erscheint in der dritten Zeile. In der vierten Zeile sind zwei Elemente aufgeführt. Und die fünfte Zeile ist leer.

Anzeigen des Dateiinhalts mit Zeilennummern

Mithilfe der Variable „NR“ im Befehl geben wir im nächsten Teil den Inhalt der Datei zusammen mit der Zeilennummer aus. Dazu verwenden wir den Befehl, in den wir zunächst „awk“ schreiben. Dann verwenden wir nach einem Leerzeichen ein Anführungszeichen. Darin platzieren wir die geschweiften Klammern. Dann schreiben wir Print. Abschließend schreiben wir „NR“. Danach setzen wir ein Komma und schreiben „$0“. Dann verlassen wir die Klammer und das Anführungszeichen. Zuletzt schreiben wir den Dateinamen „textfile.txt“.

Linux@linux:~/Desktop$ awk ‚{print NR, $0}‘ textfile.txt

Wie Sie im Ergebnis sehen können, wird der Inhalt der Datei mit Zeilennummern angezeigt, die zeigen, dass sie „5“ Zeilen enthält.

Anzeige der Gesamtdatenmenge pro Zeile mithilfe von NF

In diesem Abschnitt zeigen wir die Gesamtzahl der Elemente in jeder Zeile. Dazu verwenden wir den Befehl, in dem wir zuerst „awk“ schreiben und dann die gleichen Schritte wie im vorherigen Befehl ausführen, verwenden jedoch nach dem Schreiben des Parameters „print“ die Variable „NF“. Als nächstes schließen wir die geschweiften Klammern und Anführungszeichen. Dann schreiben wir den Dateinamen „textfile.txt“.

Linux@linux:~/Desktop$ awk ‚{print NF}‘ textfile.txt

Die Anzahl der in der Datei vorhandenen Elemente wird nun in der Ausgabe angezeigt. Die ersten drei Zeilen enthalten „1“-Elemente. Die vierte Zeile enthält „2“ Elemente. Und die letzte Zeile in der Datei ist leer. Daher wird „0“ angezeigt.

Eliminieren der Leerzeilen

In diesem Abschnitt löschen wir die leere Zeile aus der Datei. Dazu verwenden wir den Befehl, in dem wir zunächst „awk“ verwenden. Dann verwenden wir „NF>0“, die Bedingung, die besagt, dass die Zeile gedruckt werden soll, wenn die Anzahl der Elemente größer als „0“ ist. Andernfalls wird es in der Zeile nicht angezeigt. Dann verwenden wir das gleiche Verfahren wie im vorherigen Abschnitt.

Linux@linux:~/Desktop$ awk ‚NF>0 {print $0}‘ textfile.txt

Da Zeile fünf der Datei leer ist, wird sie nicht auf dem Bildschirm angezeigt. Stattdessen werden nur die Zeilen angezeigt, die die Elemente oder Elemente enthalten. Daher werden die ersten vier Zeilen der Datei angezeigt, da sie die Daten enthalten, während die letzte Zeile gelöscht wird, da sie keine Daten enthält.

Abschluss

In diesem Artikel haben wir darüber gesprochen, wie man die „AWK NF“-Funktion in Ubuntu 20.04 nutzt, um die Daten oder Informationen der Textdateien zu drucken. Im ersten Schritt haben wir die Funktionsweise der „AWK“-Funktion demonstriert. Im zweiten Schritt erstellten wir eine Textdatei auf dem Desktop und nutzten die verschiedenen Parameter der „AWK“-Funktion wie „NR“, um die Zeilen der Datei mit Zahlen zu drucken. Als nächstes haben wir „NF“ verwendet, um die Anzahl der Elemente zu zählen, die in jeder Zeile der Datei vorhanden sind. Im letzten Schritt haben wir die leere Zeile aus der Datei gelöscht, indem wir eine Bedingung mit „NF“ angewendet haben.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen