Erfahren Sie, wie Sie awk -Variablen, numerische Ausdrücke und Zuweisungsoperatoren verwenden - Teil 8

Erfahren Sie, wie Sie awk -Variablen, numerische Ausdrücke und Zuweisungsoperatoren verwenden - Teil 8

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 Zuweisungsoperatoren

Diese 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:

  1. Variablennamen: Ist der Name, den Sie einer Variablen geben
  2. Wert: 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.txt 
Listendateiinhalt 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.txt 
Speichern 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:

  1. * : Multiplikationsbetreiber
  2. + : Additionsbetreiber
  3. / : Abteilungsbetreiber
  4. - : Subtraktionsoperator
  5. % : Modul -Operator
  6. ^ : 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.txt 
Inhalt 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 0 
Shell -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.txt 
Skript 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:

  1. *= : Multiplikationszuweisungsbetreiber
  2. += : Additionszuweisungsoperator
  3. /= : Abteilungszuweisungsbetreiber
  4. -= : Subtraktionszuweisungsoperator
  5. %= : Modulzuweisungsoperator
  6. ^= : 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.