Erfahren Sie, wie Sie awk -Variablen, numerische Ausdrücke und Zuweisungsoperatoren verwenden - Teil 8
- 2271
- 382
- Janin Pletsch
Die AWK -Kommandoreihe wird aufregend, glaube ich, in den vorherigen sieben Teilen haben wir einige Grundlagen von durchgesehen Awk Sie müssen meist.
Beginnend mit diesem Teil werden wir in Vorbereitungsbereiche eintauchen Awk Um komplexere Text- oder String -Filtervorgänge zu verarbeiten. Deshalb werden wir abdecken Awk Merkmale wie Variablen, numerische Ausdrücke und Zuweisungsoperatoren.
Lernen Sie awk -Variablen, numerische Ausdrücke und ZuweisungsoperatorenDiese Konzepte unterscheiden Diese erwähnten Merkmale.
Dies wird wahrscheinlich einer der einfachsten sein Awk Befehlsabschnitte zum Verständnis, also lehnen Sie sich zurück und lassen Sie uns loslegen.
1. Awk Variablen
In jeder Programmiersprache ist eine Variable ein Platzhalter, der einen Wert speichert. Wenn Sie eine Variable in einer Programmdatei erstellen, wird ein Speicherplatz im Speicher erstellt, der den Wert speichert, den Sie für die Variable angeben.
Sie können definieren Awk Variablen auf die gleiche Weise, wie Sie Shell -Variablen wie folgt definieren:
variable_name = value
In der obigen Syntax:
Variablennamen
: Ist der Name, den Sie einer Variablen gebenWert
: Der in der Variablen gespeicherte Wert
Schauen wir uns einige Beispiele unten an:
computer_name = ”tecmint.com ”port_no =” 22 ”E -Mail =” [E -Mail geschützt] ”Server =” computer_name ”
Schauen Sie sich die obigen einfachen Beispiele in der ersten Variablendefinition auf den Wert an Tecmint.com
wird der Variablen zugeordnet Computername
.
Darüber hinaus der Wert 22
wird der Variablen zugeordnet port_no
, Es ist auch möglich, den Wert einer Variablen einer anderen Variablen wie im letzten Beispiel zuzuweisen, in dem wir den Wert von zugewiesen haben Computername
zum variablen Server.
Wenn Sie sich erinnern können, haben wir direkt aus Teil 2 dieser AWK -Serie über Feldbearbeitung darüber gesprochen, wie awk Eingangsleitungen in Felder unterteilt und den Standard -Feldzugriffsbetreiber verwendet, $
Die verschiedenen Felder zu lesen, die analysiert wurden. Wir können auch Variablen verwenden, um die Werte von Feldern wie folgt zu speichern.
First_name = $ 2 Second_name = $ 3
In den obigen Beispielen der Wert von Vorname
ist auf das zweite Feld eingestellt und Zweitname
ist auf das dritte Feld eingestellt.
Betrachten Sie als Illustration eine Datei mit dem Namen Namen.txt
Dies enthält eine Liste der Benutzer einer Anwendung, die deren erste und Nachnamen plus Geschlecht angibt. Mit dem CAT -Befehl können wir den Inhalt der Datei wie folgt anzeigen:
$ cat namen.txtListendateiinhalt mit CAT -Befehl Listen
Dann können wir auch die Variablen verwenden Vorname
Und Zweitname
Speichern Sie die ersten und zweiten Namen des ersten Benutzers auf der Liste, indem Sie das ausführen Awk Befehl unten:
$ awk '/aaron/First_name = $ 2; Second_name = $ 3; Print First_Name, Second_Name; 'Namen.txtSpeichern Sie Variablen mit dem Befehl awk
Schauen wir uns auch einen anderen Fall an, wenn Sie den Befehl ausgeben Uname -a
Auf Ihrem Terminal werden alle Ihre Systeminformationen aufgedruckt.
Das zweite Feld enthält Ihre Hostname
, deshalb können wir die speichern Hostname in einer Variablen genannt Hostname
und drucken Sie es mit Awk folgendermaßen:
$ uname -a $ uname -a | awk 'hostname = $ 2; Hostname drucken; 'Die Befehlsausgabe für die Variable mit awk speichern
2. Numerische Ausdrücke
In Awk, Numerische Ausdrücke werden unter Verwendung der folgenden numerischen Operatoren erstellt:
*
: Multiplikationsbetreiber+
: Additionsbetreiber/
: Abteilungsbetreiber-
: Subtraktionsoperator%
: Modul -Operator^
: Exponentiationsoperator
Die Syntax für numerische Ausdrücke lautet:
$ operand1 operator operand2
In der obigen Form, Operand1
Und Operand2
können Zahlen oder variable Namen sein, und Operator
ist einer der Operatoren oben.
Im Folgenden finden Sie einige Beispiele, um zu demonstrieren, wie numerische Ausdrücke erstellt werden:
Zähler = 0 Num1 = 5 Num2 = 10 Num3 = Num2-Num1-Zähler = Zähler+1
Um die Verwendung numerischer Ausdrücke in zu verstehen Awk, Wir werden das folgende Beispiel unten mit der Datei betrachten Domänen.txt
die alle Domänen enthält, die im Besitz von Tecmint.
Nachricht.Tecmint.Com Tecmint.com Linuxsay.com Windows.Tecmint.Com Tecmint.com Nachrichten.Tecmint.Com Tecmint.com Linuxsay.Com Tecmint.com Nachrichten.Tecmint.Com Tecmint.com Linuxsay.com Windows.Tecmint.Com Tecmint.com
Verwenden Sie den folgenden Befehl, um den Inhalt der Datei anzuzeigen:
$ cat Domains.txtInhalt der Datei anzeigen
Wenn wir die Häufigkeit der Domain zählen wollen Tecmint.com
In der Datei können wir ein einfaches Skript wie folgt schreiben:
#!/bin/bash für Datei in [E -Mail -geschützt]; tun, wenn [-f $ file]; dann #print out Dateiname echo "Datei lautet: $ file" #print eine Nummer inkrementell für jede Zeile mit Tecmint.com awk '/^tecmint.com/ counter = counter+1; printf "%s \ n", Zähler; '$ file else #print fehlerinformationen infizierung ist keine Datei echo "$ -Datei ist keine Datei. Bitte geben Sie eine Datei an."> & 2 && Beenden 1 FI DEM #TERTEMINATE CRIPT mit Exit -Code 0 im Falle einer erfolgreichen Ausführung Exit 0Shell -Skript zum Zählen einer Zeichenfolge oder eines Textes in der Datei
Speichern Sie es nach dem Erstellen des Skripts und machen Sie es ausführbar, wenn wir es mit der Datei ausführen, Domänen.txt
Als Ausgabe erhalten wir die folgende Ausgabe:
$ ./Skript.sh ~/domains.txtSkript zum Zählen von Zeichenfolge oder Text
Aus der Ausgabe des Skripts befinden sich 6 Zeilen in der Datei Domänen.txt
die enthalten Tecmint.com
, um zu bestätigen, dass Sie sie manuell zählen können.
3. Zuordnungsbetreiber
Das Letzte Awk Feature, die wir abdecken, sind Zuordnungsbetreiber, es gibt mehrere Zuordnungsbetreiber in awk und diese enthalten Folgendes:
*=
: Multiplikationszuweisungsbetreiber+=
: Additionszuweisungsoperator/=
: Abteilungszuweisungsbetreiber-=
: Subtraktionszuweisungsoperator%=
: Modulzuweisungsoperator^=
: Exponentiationszuweisungsbetreiber
Die einfachste Syntax einer Zuordnungsoperation in Awk ist wie folgt:
$ variable_name = variable_name operator operand
Beispiele:
Zähler = 0 Zähler = Zähler+1 num = 20 num = num-1
Sie können die oben genannten Zuordnungsbetreiber verwenden, um die Zuordnungsvorgänge in zu verkürzen Awk, Betrachten Sie die vorherigen Beispiele, wir könnten die Zuordnung in der folgenden Form ausführen:
variable_name operator = operand
Zähler = 0 Zähler+= 1 Num = 20 Num- = 1
Deshalb können wir die verändern Awk Befehl im Shell -Skript, das wir erst oben geschrieben haben +=
Zuweisungsoperator wie folgt:
#!/bin/bash für Datei in [E -Mail -geschützt]; tun, wenn [-f $ file]; dann #print out Dateiname echo "Datei lautet: $ file" #print eine Nummer inkrementell für jede Zeile mit Tecmint.com awk '/^tecmint.com/ counter+= 1; printf "%s \ n", Zähler; '$ file else #print fehlerinformationen infizierung ist keine Datei echo "$ -Datei ist keine Datei. Bitte geben Sie eine Datei an."> & 2 && Beenden 1 FI DEM #TERTEMINATE CRIPT mit Exit -Code 0 im Falle einer erfolgreichen Ausführung Exit 0Ändern Sie das Shell -Skript
In diesem Segment der AWK -Serie haben wir einige mächtige abgedeckt Awk Merkmale, dh Variablen, Erstellen numerischer Ausdrücke und Verwendung von Zuweisungsoperatoren sowie einige wenige Abbildungen, wie wir sie tatsächlich verwenden können.
Diese Konzepte unterscheiden sich nicht von der in anderen Programmiersprachen.
In Teil 9, Wir werden uns mehr ansehen Awk Merkmale, die besondere Muster sind: START
Und ENDE
. Bis dahin bleiben Sie in Verbindung mit mit Tecmint.
- « 8 beste Bildschirmrekorder für die Desktop -Bildschirmaufzeichnung unter Linux
- 15 nützliche SED -Schabat -Tipps und Tricks für tägliche Linux -Systemverabreichungsaufgaben »