Was ist AWK NF?

Was Ist Awk Nf



Die Skriptsprache AWK hat auch eine Reihe von eingebauten speziellen Variablen, die einigen vordefinierten Zwecken dienen. Eine solche eingebaute Variable ist „NF“, die ihre eigene vordefinierte Funktionalität hat. In diesem Artikel wird der Zweck dieser integrierten AWK-Variablen untersucht, indem einige relevante Beispiele in Ubuntu 20.04 demonstriert werden.

AWK NF unter Ubuntu 20.04:

Die AWK-Variable „NF“ wird verwendet, um die Anzahl der Felder in allen Zeilen einer bereitgestellten Datei zu drucken. Diese eingebaute Variable durchläuft nacheinander alle Zeilen der Datei und gibt die Anzahl der Felder separat für jede Zeile aus. Um diese Funktionalität gut zu verstehen, müssen Sie die unten besprochenen Beispiele durchlesen.

Beispiele zur Demonstration der Verwendung von AWK NF in Ubuntu 20.04:

Die folgenden vier Beispiele wurden so gestaltet, dass Sie die Verwendung von AWK NF auf sehr leicht verständliche Weise lernen. Alle diese Beispiele wurden mit dem Betriebssystem Ubuntu 20.04 implementiert.







Beispiel Nr. 1: Drucken Sie die Anzahl der Felder aus jeder Zeile einer Textdatei:

In diesem Beispiel wollten wir die Anzahl der Felder oder Spalten jeder Zeile oder Zeile oder Aufzeichnung einer Textdatei in Ubuntu 20.04 drucken. Um Ihnen die Methode zu zeigen, haben wir die im Bild unten gezeigte Textdatei erstellt. Diese Textdatei enthält die Apfelpreise pro Kilogramm aus fünf verschiedenen Städten Pakistans.





Nachdem wir diese Beispieltextdatei erstellt hatten, führten wir den folgenden Befehl aus, um die Anzahl der Felder aus jeder Zeile dieser Textdatei in unserem Terminal zu drucken:





$ ach ' { NF drucken } ’ AppleRates.txt

In diesem Befehl haben wir das Schlüsselwort „awk“, das anzeigt, dass wir einen AWK-Befehl ausführen, gefolgt von der Anweisung „print NF“, die einfach durch jede Zeile der Zieltextdatei iteriert und die Anzahl der Felder für jede separat druckt Zeile der Textdatei. Schließlich haben wir den Namen dieser Textdatei (deren Felder gezählt werden sollen), in unserem Fall „AppleRatest.txt“.



Da wir für alle fünf Zeilen unserer Textdatei genau dieselbe Anzahl von Feldern hatten, d. h. 2, wird aufgrund der Ausführung dieses Befehls dieselbe Anzahl als Anzahl von Feldern für alle Textdateizeilen ausgegeben. Dies ist aus dem folgenden Bild ersichtlich:

Beispiel Nr. 2: Geben Sie die Anzahl der Felder aus jeder Zeile einer Textdatei in einer vorzeigbaren Weise aus:

Die im oben diskutierten Beispiel angezeigte Ausgabe kann auch schön dargestellt werden, indem die Zeilennummern und die Anzahl der Felder jeder Zeile der Textdatei angezeigt werden. Außerdem können wir die Zeilennummern auch mit beliebigen Sonderzeichen unserer Wahl von der Anzahl der Felder trennen. Wir werden dieselbe Textdatei verwenden, die wir für unser erstes Beispiel verwendet haben, um Ihnen dies zu zeigen. Unser Befehl, der in diesem Fall ausgeführt werden soll, unterscheidet sich jedoch geringfügig und lautet wie folgt:

$ ach ' { drucke NR, „---“, NF } ’ AppleRates.txt

In diesem Befehl haben wir die eingebaute AWK-Variable „NR“ eingeführt, die einfach die Zeilennummern aller Zeilen unserer Zieltextdatei ausgibt. Außerdem haben wir drei Bindestriche „—“ als Sonderzeichen verwendet, um die Zeilennummern von der Anzahl der Felder unserer bereitgestellten Textdatei zu trennen.

Diese leicht modifizierte Ausgabe derselben Textdatei ist im Bild unten dargestellt:

Beispiel Nr. 3: Drucken Sie das erste und letzte Feld aus jeder Zeile einer Textdatei:

Abgesehen davon, dass nur die Anzahl der Felder aller Zeilen einer bereitgestellten Textdatei gezählt wird, kann die spezielle Variable „NF“ von AWK auch verwendet werden, um die tatsächlichen Werte des letzten Felds aus der bereitgestellten Textdatei zu extrahieren. Auch hier haben wir dieselbe Textdatei verwendet, die wir für unsere ersten beiden Beispiele verwendet haben. In diesem Beispiel möchten wir jedoch die tatsächlichen Werte der ersten und letzten Felder unserer Textdatei drucken. Dazu haben wir folgenden Befehl ausgeführt:

$ ach ' { drucken $1 , $NF } ’ AppleRates.txt

Auf das Schlüsselwort „awk“ folgt in diesem Befehl die Anweisung „print $1, $NF“. Die spezielle Variable „$1“ wurde verwendet, um die Werte des ersten Felds oder der ersten Spalte unserer bereitgestellten Textdatei zu drucken, während die AWK-Variable „$NF“ verwendet wurde, um die Werte des letzten Felds oder der letzten Spalte zu drucken unserer Zieltextdatei. Sie müssen hier beachten, dass, wenn wir die AWK-Variable „NF“ so verwenden, wie sie ist, sie verwendet wird, um die Anzahl der Felder jeder Zeile zu zählen; Wenn es jedoch mit dem Dollarzeichen „$“ verwendet wird, werden einfach die tatsächlichen Werte aus dem letzten Feld der bereitgestellten Textdatei extrahiert. Der Rest des Befehls entspricht mehr oder weniger den Befehlen, die für die ersten beiden Beispiele verwendet wurden.

In der unten gezeigten Ausgabe können Sie sehen, dass die tatsächlichen Werte aus dem ersten und letzten Feld unserer bereitgestellten Textdatei auf dem Terminal gedruckt wurden. Sie können sehen, dass diese Ausgabe der Ausgabe des „cat“-Befehls ziemlich ähnlich ist, nur weil wir nur zwei Felder in unserer bereitgestellten Textdatei hatten; Daher wurde in gewisser Weise der Inhalt unserer gesamten Textdatei als Ergebnis der Ausführung des oben genannten Befehls auf dem Terminal gedruckt.

Beispiel Nr. 4: Trennen Sie die Datensätze mit fehlenden Feldern in einer Textdatei:

Manchmal gibt es einige Datensätze in einer Textdatei mit bestimmten fehlenden Feldern, und Sie möchten diese Datensätze möglicherweise von denen trennen, die in jeder Hinsicht vollständig sind. Dies kann auch über die AWK-Variable „NF“ erfolgen. Dafür haben wir eine Textdatei mit dem Namen „ExamMarks.txt“ erstellt, die die Prüfungsergebnisse von fünf verschiedenen Studenten in drei verschiedenen Prüfungen zusammen mit ihren Namen enthält. Bei der dritten Prüfung fehlten jedoch einige der Schüler, weshalb ihre Noten fehlten. Diese Textdatei lautet wie folgt:

Um die Datensätze mit fehlenden Feldern von den Datensätzen mit den vollständigen Feldern zu unterscheiden, führen wir den unten gezeigten Befehl aus:

$ ach ' { drucke NR, „--- > “, NF } ’ Prüfungsnoten.txt

Dieser Befehl ist derselbe wie der, den wir für unser zweites Beispiel verwendet haben. Aus der Ausgabe dieses Befehls in der folgenden Abbildung können Sie jedoch sehen, dass der erste und vierte Datensatz vollständig sind, während der zweite, dritte und fünfte Datensatz fehlende Felder enthalten.

Fazit:

Der Zweck dieses Artikels war es, die Verwendung der speziellen AWK-Variablen „NF“ zu erklären. Wir haben zuerst kurz diskutiert, wie diese Variable funktioniert, und danach haben wir dieses Konzept anhand von vier verschiedenen Beispielen gut ausgearbeitet. Sobald Sie alle freigegebenen Beispiele gut verstanden haben, können Sie die AWK-Variable „NF“ verwenden, um die Gesamtzahl der Felder zu zählen und die tatsächlichen Werte des letzten Felds der bereitgestellten Datei zu drucken.