Website-Suche

Erfahren Sie, wie Sie die integrierten AWK-Variablen verwenden - Teil 10


Während wir den Abschnitt der Awk-Funktionen in diesem Teil der Serie aufdecken, werden wir das Konzept der integrierten Variablen in Awk durchgehen. Es gibt zwei Arten von Variablen, die Sie in Awk verwenden können: benutzerdefinierte Variablen, die wir in Teil 8 behandelt haben, und eingebaute Variablen.

Eingebaute Variablen haben bereits in Awk definierte Werte, aber wir können diese Werte auch sorgfältig ändern, zu den eingebauten Variablen gehören:

  • FILENAME : Name der aktuellen Eingabedatei (Variablennamen nicht ändern)
  • FR : Nummer der aktuellen Eingangsleitung (d.h. Eingangsleitung 1, 2, 3... usw., Variablennamen nicht ändern)
  • NF : Anzahl der Felder in der aktuellen Eingabezeile (Variablenname nicht ändern)
  • OFS : Trennzeichen für das Ausgabefeld
  • FS : Trennzeichen für das Eingabefeld
  • ORS : Trennzeichen für Ausgabesätze
  • RS : Trennzeichen für den Eingangsdatensatz

Lassen Sie uns fortfahren, um die Verwendung einiger der oben genannten integrierten Awk-Variablen zu veranschaulichen:

Um den Dateinamen der aktuellen Eingabedatei zu lesen, können Sie die integrierte Variable FILENAME wie folgt verwenden:

awk ' { print FILENAME } ' ~/domains.txt 

Sie werden sehen, dass der Dateiname für jede Eingabezeile ausgegeben wird. Dies ist das Standardverhalten von Awk bei Verwendung der integrierten Variablen FILENAME.

Wenn Sie NR verwenden, um die Anzahl der Zeilen (Datensätze) in einer Eingabedatei zu zählen, denken Sie daran, dass es auch die leeren Zeilen zählt, wie wir im folgenden Beispiel sehen werden.

Wenn wir die Datei domains.txt mit dem Befehl cat betrachten, enthält sie 14 Zeilen mit Text und leere 2 Zeilen:

cat ~/domains.txt

Um die Anzahl der Datensätze zu zählen, verwenden Sie die integrierte Variable NR wie folgt:

awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt 

Um die Anzahl der Felder in einem Datensatz oder einer Zeile zu zählen, verwenden wir die integrierte Variable NR wie folgt:

$ cat ~/names.txt

Um die Anzahl der Felder in jedem Datensatz oder jeder Zeile zu zählen, verwenden Sie die integrierte Variable NF:

awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

Als nächstes können Sie auch ein Eingabefeldtrennzeichen mit der integrierten Variablen FS angeben, die definiert, wie Awk Eingabezeilen in Felder unterteilt.

Der Standardwert für FS ist Leerzeichen und Tabulator, aber wir können den Wert von FS in ein beliebiges Zeichen ändern, das Awk anweist, die Eingabezeilen entsprechend zu teilen.

Hierfür gibt es zwei Methoden:

  • Eine Methode besteht darin, die eingebaute Variable FS zu verwenden
  • und die zweite besteht darin, die Option -F Awk aufzurufen

Betrachten Sie die Datei /etc/passwd auf einem Linux-System, die Felder in dieser Datei werden mit dem Zeichen : getrennt, so dass wir es als neues Eingabefeld-Trennzeichen angeben können, wenn wir bestimmte Felder herausfiltern möchten, wie in den folgenden Beispielen:

Wir können die Option -F wie folgt verwenden:

awk -F':' '{ print $1, $4 ;}' /etc/passwd

Optional können wir auch die Vorteile der integrierten Variablen FS wie folgt nutzen:

awk ' BEGIN {  FS=“:” ; }  { print $1, $4  ; } ' /etc/passwd

Um ein Trennzeichen für Ausgabefelder anzugeben, verwenden Sie die integrierte Variable OFS, sie definiert, wie die Ausgabefelder mit dem Zeichen getrennt werden, das wir wie im folgenden Beispiel verwenden:

awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

In Teil 10 haben wir die Idee der Verwendung von in Awk integrierten Variablen untersucht, die mit vordefinierten Werten geliefert werden. Aber wir können diese Werte auch ändern, aber es wird nicht empfohlen, dies zu tun, es sei denn, Sie wissen, was Sie tun, mit angemessenem Verständnis.

Danach werden wir fortfahren, um zu behandeln, wie wir Shell-Variablen in Awk-Befehlsoperationen verwenden und somit mit Tecmint verbunden bleiben können.

Für diejenigen, die eine umfassende Ressource suchen, haben wir alle Artikel der Awk-Serie in einem Buch zusammengestellt, das 13 Kapitel umfasst und sich über 41 Seiten erstreckt und sowohl die grundlegende als auch die fortgeschrittene Verwendung von Awk mit praktischen Beispielen abdeckt.

ProduktnamePreisKaufen
E-Book: Einführung in den AWK-Leitfaden für Anfänger8,99 $[Jetzt kaufen]

Verwandte Artikel: