Dowiedz się, jak używać zmiennych AWK, wyrażeń numerycznych i operatorów przypisania - Część 8

Dowiedz się, jak używać zmiennych AWK, wyrażeń numerycznych i operatorów przypisania - Część 8

Wierzę, że seria poleceń AWK staje się ekscytująca Awk że musisz opanować, aby umożliwić wykonanie podstawowego filtrowania tekstu lub ciągów w Linux.

Począwszy od tej części, będziemy zanurzyć się w wcześniejszych obszarach Awk Aby obsłużyć bardziej złożone operacje filtrowania tekstu lub łańcucha. Dlatego zamierzamy pokryć Awk Funkcje takie jak zmienne, wyrażenia liczbowe i operatorzy przypisań.

Naucz się zmiennych AWK, wyrażeń numerycznych i operatorów przypisań

Te pojęcia nie różnią się kompleksowo od tych, które prawdopodobnie napotkałeś w wielu językach programowania przed taką powłoką, C, Python plus wiele innych, więc nie trzeba się martwić o ten temat, po prostu rewizorujemy wspólne pomysły wykorzystania Te wspomniane funkcje.

To prawdopodobnie będzie jeden z najłatwiejszych Awk Sekcje poleceń do zrozumienia, więc usiądź i zacznijmy.

1. Zmienne AWK

W dowolnym języku programowania zmienna to posiadacz miejsca, który przechowuje wartość, gdy tworzysz zmienną w pliku programu, ponieważ plik jest wykonywany, niektóre miejsce jest tworzone w pamięci, która będzie przechowywać wartość określoną dla zmiennej.

Możesz zdefiniować Awk zmienne w taki sam sposób definiujesz zmienne powłoki w następujący sposób:

zmienna_nazwa = wartość 

W powyższej składni:

  1. nazwa_zmienna: to nazwa, którą podajesz zmienną
  2. wartość: wartość przechowywana w zmiennej

Spójrzmy na kilka przykładów poniżej:

computer_name = ”Tecmint.com ”port_no =” 22 ”e -mail =” [e -mail chroniony] ”server =” Computer_name ” 

Spójrz na proste powyższe przykłady, w pierwszej definicji zmiennej, wartość Tecmint.com jest przypisany do zmiennej Nazwa komputera.

Ponadto wartość 22 jest przypisany do zmiennej Port_no, Możliwe jest również przypisanie wartości jednej zmiennej do innej zmiennej, jak w ostatnim przykładzie, w którym przypisaliśmy wartość Nazwa komputera do serwera zmiennego.

Jeśli możesz sobie przypomnieć, od części 2 tej serii AWK to edycja pola, rozmawialiśmy o tym, w jaki sposób AWK dzieli linie wejściowe na pola i korzysta ze standardowego operatora dostępu do pola, $ przeczytać różne pola, które zostały przeanalizowane. Możemy również używać zmiennych do przechowywania wartości pól w następujący sposób.

First_name = 2 $ Second_name = 3 $ 

W powyższych przykładach wartość imię jest ustawiony na drugie pole i drugie imię jest ustawiony na trzecie pole.

Jako ilustrację rozważ plik o nazwie nazwy.tekst który zawiera listę użytkowników aplikacji wskazujących ich imiona i nazwiska oraz płeć. Korzystając z polecenia CAT, możemy wyświetlić zawartość pliku w następujący sposób:

$ CAT Names.tekst 
Wypisz zawartość pliku za pomocą polecenia CAT

Następnie możemy również użyć zmiennych imię I drugie imię Aby przechowywać pierwsze i drugie nazwiska pierwszego użytkownika na liście, ponieważ uruchamiając Awk Polecenie poniżej:

$ awk '/aaron/First_name = 2 $; Second_name = 3 $; wydrukuj nazwę_name, second_name; ' nazwy.tekst 
Przechowuj zmienne za pomocą polecenia AWK

Spójrzmy również na inny przypadek, gdy wydasz polecenie bez nazwy -a Na terminalu drukuje wszystkie informacje o systemie.

Drugie pole zawiera twoje Nazwa hosta, Dlatego możemy przechowywać Nazwa hosta w zmiennej o nazwie Nazwa hosta i wydrukuj go za pomocą Awk następująco:

$ uname -a $ uname -a | awk 'hostName = 2 $; Wydrukuj nazwę hosta;  ' 
Przechowuj wyjście polecenia do zmiennej za pomocą AWK

2. Wyrażenia numeryczne

W Awk, Wyrażenia numeryczne są budowane przy użyciu następujących operatorów numerycznych:

  1. * : Operator mnożenia
  2. + : Operator dodawania
  3. / : Operator oddziału
  4. - : Operator odejmowania
  5. % : Operator modułu
  6. ^ : operator wykładników

Składnia wyrażeń numerycznych to:

$ operand1 operator operand2 

W powyższej formie, Operand1 I Operand2 mogą to być liczby lub nazwy zmiennych i operator jest dowolnym z powyższych operatorów.

Poniżej znajdują się kilka przykładów, aby wykazać, jak budować wyrażenia numeryczne:

licznik = 0 Num1 = 5 NUM2 = 10 NUM3 = licznik NUM2-Num1 = licznik+1 

Zrozumieć użycie wyrażeń liczbowych w Awk, Poniżej rozważymy poniższy przykład z plikiem domeny.tekst który zawiera wszystkie domeny należące do Tecmint.

Aktualności.Tecmint.com tecMint.com Linuxsay.Windows com.Tecmint.com tecMint.Com News.Tecmint.com tecMint.com Linuxsay.com tecMint.Com News.Tecmint.com tecMint.com Linuxsay.Windows com.Tecmint.com tecMint.com 

Aby wyświetlić zawartość pliku, użyj poniższego polecenia:

Domeny $ CAT.tekst 
Wyświetl zawartość pliku

Jeśli chcemy policzyć, ile razy domena Tecmint.com Pojawi się w pliku, możemy napisać prosty skrypt, aby to zrobić w następujący sposób:

#!/bin/bash dla pliku w [e -mail chroniony]; zrób, jeśli [-f $ plik]; Następnie #Print Out FileName Echo „Plik to: $ plik” #Print Numer stopniowo dla każdej linii zawierającej TecMint.COM AWK '/^TECMINT.com/ licznik = licznik+1; printf "%s \ n", licznik;  '$ plik else #print Informacje o błędach, jeśli wejście nie jest echo pliku "."> I 2 && Exit 1 Fi wykonano #terminację skryptu z kodem wyjściowym 0 w przypadku pomyślnego wykonywania wyjścia 0 
Skrypt powłoki do zliczenia ciągu lub tekstu w pliku

Po utworzeniu skryptu zapisz go i uczyń go wykonywaniem, kiedy uruchamiamy go z plikiem, domeny.tekst Jako wejście, otrzymujemy następujące dane wyjściowe:

$ ./scenariusz.sh ~/domeny.tekst 
Skrypt do liczenia ciągu lub tekstu

Ze wyjścia skryptu w pliku znajduje się 6 wierszy domeny.tekst który zawiera Tecmint.com, Aby potwierdzić, że możesz je ręcznie policzyć.

3. Operatorzy zadań

Ostatni Awk Funkcja, którą omówimy, to operatorzy przypisania, w AWK jest kilku operatorów przydziałów, które zawierają:

  1. *= : Operator przypisania mnożenia
  2. += : Operator przypisania dodawania
  3. /= : Operator zadania
  4. -= : Operator przypisania odejmowania
  5. %= : Operator przypisania modułu
  6. ^= : Operator przypisania wykładowości

Najprostsza składnia operacji przypisania w Awk następująco:

$ varible_name = variable_name operator operator 

Przykłady:

licznik = 0 licznik = licznik+1 NUM = 20 NUM = NUM-1 

Możesz użyć powyższych operatorów przypisania, aby skrócić operacje przypisania Awk, Rozważ poprzednie przykłady, moglibyśmy wykonać zadanie w następującym formularzu:

VARILE_NAME Operator = Operand 
licznik = 0 licznik+= 1 num = 20 num- = 1 

Dlatego możemy zmienić Awk polecenie w skrypcie powłoki, które właśnie napisaliśmy powyżej, używając += Operator przypisania w następujący sposób:

#!/bin/bash dla pliku w [e -mail chroniony]; zrób, jeśli [-f $ plik]; Następnie #Print Out FileName Echo „Plik to: $ plik” #Print Numer stopniowo dla każdej linii zawierającej TecMint.COM AWK '/^TECMINT.com/ Counter+= 1; printf "%s \ n", licznik;  '$ plik else #print Informacje o błędach, jeśli wejście nie jest echo pliku "."> I 2 && Exit 1 Fi wykonano #terminację skryptu z kodem wyjściowym 0 w przypadku pomyślnego wykonywania wyjścia 0 
Zmień skrypt powłoki

W tym segmencie serii AWK omówiliśmy kilka potężnych Awk funkcje, czyli zmienne, budowanie wyrażeń liczbowych i korzystanie z operatorów przypisań, a także kilka ilustracji, w jaki sposób możemy z nich korzystać.

Te pojęcia nie różnią się od tego w innych językach programowania, ale w ramach programowania AWK mogą istnieć pewne znaczące rozróżnienia.

W Część 9, Przyjrzymy się więcej Awk Funkcje, które są specjalnymi wzorami: ZACZYNAĆ I KONIEC. Do tego czasu pozostań w kontakcie z Tecmint.