Erfahren Sie, wie Sie awk eingebaute Variablen verwenden - Teil 10

- 4782
- 632
- Hr. Moritz Bozsik
Als wir den Abschnitt von entdecken Awk Merkmale in diesem Teil der Serie werden wir durch das Konzept der eingebauten Variablen in awk gehen. Es gibt zwei Arten von Variablen, die Sie in awk verwenden können benutzerdefinierte Variablen, die wir in Teil 8 und behandelt haben eingebaut Variablen.

Eingebaut Variablen haben bereits Werte definiert in Awk, Wir können diese Werte aber auch sorgfältig ändern, die integrierten Variablen umfassen:
DATEINAMEN
: Aktueller Eingabedatei Name (nicht den variablen Namen ändern)Fr
: Anzahl der aktuellen Eingangsleitung (dh Eingangsleitung 1, 2, 3… also ändern Sie den variablen Namen nicht)Nf
: Anzahl der Felder in der aktuellen Eingangsleitung (ändern Sie den variablen Namen nicht)Ofs
: AusgangsfeldabscheiderFs
: EingangsfeldabscheiderOrs
: AusgangsrekordabscheiderRs
: Eingabeteilscheider
Lassen Sie uns die Verwendung einiger der oben genannten AWK-integrierten Variablen veranschaulichen:
Um den Dateinamen der aktuellen Eingabedatei zu lesen, können Sie die verwenden DATEINAMEN
Eingebaute Variable wie folgt:
$ awk 'Print Dateiname' ~/Domains.txt

Sie werden erkennen, dass der Dateiname für jede Eingabestellung ausgedruckt ist, das ist das Standardverhalten von Awk Wenn Sie verwenden DATEINAMEN
integrierte Variable.
Verwendung Nr
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 anzeigen Domänen.txt Verwenden des CAT -Befehls enthält es 14 Zeilen mit Text und leer 2 Linien:
$ cat ~/domains.txt

$ awk 'Ende print "Anzahl der Datensätze in der Datei ist:", nr' ~/Domains.txt

Um die Anzahl der Felder in einem Datensatz oder einer Zeile zu zählen, verwenden wir die integrierte NR-integrierte Variable wie folgt:
$ cat ~/Namen.txt

$ awk 'print "record:", nr, "hat", nf, "fields"; '~/names.txt

Als nächstes können Sie auch einen Eingangsfeldabscheider mit dem angeben Fs
integrierte Variable definiert, wie Awk Teilen Sie Eingangsleitungen in Felder auf.
Der Standardwert für Fs
Ist Raum Und Tab, aber wir können den Wert von ändern Fs
zu jedem Charakter, der awk anweist, Eingangsleitungen entsprechend zu teilen.
Es gibt zwei Methoden, um dies zu tun:
- Eine Methode besteht darin, die zu verwenden Fs integrierte Variable
- und die zweite ist, die aufzurufen -F Awk Option
Betrachten Sie die Datei /etc/passwd Auf einem Linux -System werden die Felder in dieser Datei unter Verwendung des :
Das Zeichen, damit wir es als neues Eingangsfeldtrennzeichen angeben können, wenn wir bestimmte Felder wie in den folgenden Beispielen herausfiltern möchten:
Wir können die verwenden -F
Option wie folgt:
$ awk -f ': "print $ 1, $ 4;' /etc /passwd

Optional können wir auch die ausnutzen Fs
integrierte Variable wie unten:
$ awk 'begin fs = ":"; print $ 1, $ 4; ' /etc /passwd

Verwenden Sie die Ausgangsfeldabscheider, um ein Ausgangsfeld -Trennzeichen anzugeben, die Ofs
Die integrierte Variable definiert, wie die Ausgangsfelder unter Verwendung des Zeichens, das wir verwenden, wie im folgenden Beispiel verwendet werden:
$ awk -f ': "begin ofs =" ==> "; print $ 1, $ 4;' /etc /passwd

In diesem Teil 10, Wir haben die Idee untersucht, awk-integrierte Variablen zu verwenden, die mit vordefinierten Werten geliefert werden. Wir können diese Werte jedoch auch ändern. Es wird jedoch nicht empfohlen, dies zu tun, es sei denn, Sie wissen, was Sie tun, mit angemessenem Verständnis.
Danach werden wir fortschreiten, um zu decken, wie wir Shell -Variablen in awk -Befehlsoperationen verwenden können, und bleiben daher miteinander verbunden mit Tecmint.
- « Geary - Ein gut aussehender moderner E -Mail -Client für Linux
- Cumulus - eine Echtzeitwetter -App für Linux -Desktops »