Jak używać instrukcji kontroli przepływu w AWK - część 12

Jak używać instrukcji kontroli przepływu w AWK - część 12

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 AWK

Istnieją różne instrukcje kontroli przepływu w programowaniu AWK, które obejmują:

  1. Oświadczenie IF-ELSE
  2. dla stwierdzenia
  3. podczas oświadczenia
  4. Wykonaj stwierdzenie
  5. Oświadczenie o przerwie
  6. Kontynuuj oświadczenie
  7. Następne stwierdzenie
  8. Nextfile Instrukcja
  9. 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.