Jak używać instrukcji kontroli przepływu w AWK - część 12
- 2323
- 553
- Pan Jeremiasz Więcek
Kiedy przejrzysz wszystkie przykłady AWK, które omówiliśmy do tej pory, od początku serii AWK, zauważysz, że wszystkie polecenia w różnych przykładach są wykonywane sekwencyjnie, czyli jeden po drugim. Ale w niektórych sytuacjach możemy chcieć uruchomić niektóre operacje filtrowania tekstu w oparciu o niektóre warunki, w tym miejscu wchodzi podejście instrukcji kontroli przepływu.
Użyj instrukcji kontroli przepływu w AWKIstnieją różne instrukcje kontroli przepływu w programowaniu AWK, które obejmują:
- Oświadczenie IF-ELSE
- dla stwierdzenia
- podczas oświadczenia
- Wykonaj stwierdzenie
- Oświadczenie o przerwie
- Kontynuuj oświadczenie
- Następne stwierdzenie
- Nextfile Instrukcja
- Oświadczenie o wyjściu
Jednak dla zakresu tej serii wyjaśnimy: Jeśli inaczej
, Do
, chwila
I zrobić
sprawozdania. Pamiętaj, że przeszliśmy już, jak użyć następnego oświadczenia w części 6 tej serii AWK.
1. Oświadczenie IF-ELSE
Oczekiwana składnia If oświadczenie
jest podobne do skorupy If oświadczenie:
if (warunek1) Actions1 else Actions2
W powyższej składni, warunek 1
I warunek2
to wyrażenia AWK i Działania1
I Działania2
Czy polecenia AWK wykonywane jest, gdy odpowiednie warunki są spełnione.
Gdy warunek 1 jest zadowolony, co oznacza, że to prawda Działania1 jest wykonywany i If oświadczenie W przeciwnym razie wyjście Działania2 jest wykonywany.
If oświadczenie można również rozszerzyć na if-else_if-else
stwierdzenie jak poniżej:
if (warunek1) Actions1 else if (warunki2) Actions2 else Actions3
Dla powyższego formularza, jeśli warunek 1 Jest to prawda Działania1 jest wykonywany i If oświadczenie W przeciwnym razie wyjście warunek2 jest oceniany i jeśli to prawda, to Działania2 jest wykonywany i If oświadczenie Wyjścia. Jednak kiedy warunek2 jest więc fałszywe, Działania3 jest wykonywany i If oświadczenie Wyjścia.
Oto przypadek użycia Jeśli stwierdzenia, Mamy listę użytkownicy i ich wieczność przechowywane w pliku, użytkownicy.tekst.
Chcemy wydrukować instrukcję wskazującą nazwę użytkownika i czy wiek użytkownika jest mniejszy czy więcej niż więcej niż 25 lat.
[chroniony e -mail] ~ $ Użytkownicy CAT.tekst Sarah L 35 f Aaron Kili 40 m John Doo 20 M Kili Seth 49 M
Możemy napisać krótki skrypt powłoki, aby wykonać nasze zadanie powyżej, oto treść skryptu:
#!/bin/bash awk 'if (3 USD <= 25 ) print "User",$1,$2,"is less than 25 years old." ; else print "User",$1,$2,"is more than 25 years old" ; ' ~/users.txt
Następnie zapisz plik i wyjdź, uczyń skrypt wykonywalny i uruchom go w następujący sposób:
$ chmod +x test.sh $ ./test.cii
Przykładowy wyjście
Użytkownik Sarah L to ponad 25 lat użytkownik Aaron Kili ma ponad 25 lat użytkownik John Doo ma mniej niż 25 lat. Użytkownik Kili Seth ma ponad 25 lat
2. Oświadczenie dla
Jeśli chcesz wykonać kilka poleceń AWK w pętli, a następnie dla stwierdzenia oferuje odpowiedni sposób na to, z poniższą składnią:
Tutaj podejście jest po prostu zdefiniowane przez użycie licznika do kontrolowania wykonywania pętli, najpierw musisz zainicjować licznik, a następnie uruchomić go w stosunku do warunku testowego, jeśli jest to prawdą, wykonaj działania i wreszcie zwiększyć licznik. Pętla kończy się, gdy licznik nie spełnia warunku.
dla (kontrinitializacja; kondycja testu; contr-increment) Actions
Następujące polecenie AWK pokazuje, jak dla stwierdzenia działa, gdzie chcemy wydrukować liczby 0-10:
$ awk 'start for (Counter = 0; Counter<=10;counter++) print counter '
Przykładowy wyjście
0 1 2 3 4 5 6 7 8 9 10
3. Oświadczenie
Konwencjonalna składnia podczas oświadczenia następująco:
while (warunek) Actions
Warunek jest wyrażeniem AWK, a działania są wierszami poleceń AWK wykonanych, gdy warunek jest prawdziwy.
Poniżej znajduje się skrypt ilustrujący użycie podczas oświadczenia Aby wydrukować liczby 0-10:
#!/bin/bash awk 'start Counter = 0; When (licznik<=10) print counter; counter+=1 ;
Zapisz plik i uczyń skrypt wykonywalny, a następnie uruchom go:
$ chmod +x test.sh $ ./test.cii
Przykładowy wyjście
0 1 2 3 4 5 6 7 8 9 10
4. DO WYJŚCIA
Jest to modyfikacja podczas oświadczenia Powyżej, z następującą podstawową składnią:
do Działania while (warunek)
Niewielka różnica polega na tym, że poniżej zrobić, Polecenia AWK są wykonywane przed oceną warunku. Korzystanie z tego przykładu pod podczas oświadczenia Powyżej możemy zilustrować użycie zrobić zmieniając polecenie AWK w test.cii skrypt w następujący sposób:
#!/bin/bash awk 'start Counter = 0; do druk licznika; licznik+= 1; w czasie (licznik<=10) '
Po zmodyfikowaniu skryptu zapisz plik i wyjdź. Następnie spraw, aby skrypt był wykonywany i wykonaj go w następujący sposób:
$ chmod +x test.sh $ ./test.cii
Przykładowy wyjście
0 1 2 3 4 5 6 7 8 9 10
Wniosek
To nie jest kompleksowy przewodnik dotyczący stwierdzeń kontroli przepływu AWK, jak wspomniałem wcześniej, istnieje kilka innych Instrukcje kontroli przepływu w AWK.
Niemniej jednak ta część serii AWK powinna dać ci wyraźną podstawową wyobrażenie o tym, w jaki sposób wykonywanie poleceń AWK można kontrolować na podstawie określonych warunków.
Możesz także wyjaśnić resztę instrukcji kontroli przepływu, aby uzyskać lepsze zrozumienie tematu. Wreszcie, w następnej sekcji serii AWK, przejdziemy do pisania skryptów AWK.
- « Debian GnU/Linux urodziny 23 lata podróży i wciąż liczy…
- Jak zarządzać dziennikami systemowymi (konfiguruj, obracaj i importowanie do bazy danych) w RHEL 7 - część 5 »