Dowiedz się, jak używać zmiennych AWK, wyrażeń numerycznych i operatorów przypisania - Część 8
- 2685
- 699
- Ignacy Modzelewski
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:
nazwa_zmienna
: to nazwa, którą podajesz zmienną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.tekstWypisz 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.tekstPrzechowuj 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:
*
: Operator mnożenia+
: Operator dodawania/
: Operator oddziału-
: Operator odejmowania%
: Operator modułu^
: 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.tekstWyś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 0Skrypt 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.tekstSkrypt 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ą:
*=
: Operator przypisania mnożenia+=
: Operator przypisania dodawania/=
: Operator zadania-=
: Operator przypisania odejmowania%=
: Operator przypisania modułu^=
: 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 0Zmień 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.
- « 8 najlepszych nagrań ekranowych do nagrywania ekranu komputerowego w Linux
- 15 Przydatne wskazówki i wskazówki dotyczące poleceń „SED” dla codziennych zadań administrowania systemem Linux »