Warunkowe stwierdzenia w AWK
- 2955
- 320
- Tacjana Karpiński
Instrukcje warunkowe są jedną z najpotężniejszych funkcji AWK, umożliwiając użytkownikom wykonywanie różnych poleceń na podstawie wartości zmiennych lub wyrażeń. Umożliwia to tworzenie złożonej logiki w skryptach AWK i ułatwia wydajność zaawansowanych zadań przetwarzania tekstu.
W tym samouczku omówimy podstawy warunków w AWK, w tym składnię i wykorzystanie oświadczenia „IF-Else”. Na przykład:
- Oświadczenia IF-Else z AWK
- Instrukcja przełącznika z AWK
- Trójskładnicy z AWK
Instrukcja IF-Else z AWK
'Jeśli inaczej' Oświadczenie jest podstawowym stwierdzeniem warunkowym w AWK. Pozwala na określenie różnych poleceń do wykonywania na podstawie określonego warunku. Składnia dla 'Jeśli inaczej' Oświadczenie jest następujące:
if (warunek) # polecenia do wykonania, jeśli warunek jest prawdziwy else # polecenia do wykonania, jeśli warunek jest false123456 | if (warunek) # polecenia do wykonania, jeśli warunek jest prawdziwy else # polecenia do wykonania, jeśli warunek jest false |
Tutaj, 'stan : schorzenie' jest wyrażeniem logicznym, które ocenia się na prawdziwe lub fałszywe. Jeśli warunek jest prawdziwy, polecenia wewnątrz kręconych aparatów ortodontycznych 'Jeśli' są wykonane. Jeśli warunek jest fałszywy, polecenia wewnątrz kręconych aparatów ortodontycznych 'w przeciwnym razie' są wykonane.
Załóżmy na przykład, że mamy plik zawierający listę liczb i chcemy wydrukować liczby większe niż 10. Możemy użyć 'Jeśli inaczej' Oświadczenie o wykonaniu tego zadania w następujący sposób:
AWK 'if (1 $> 10) drukuj 1 $.tekst1 | AWK 'if (1 $> 10) drukuj 1 $.tekst |
Tutaj 'Jeśli' Oświadczenie sprawdza, czy pierwsze pole (1 USD) jest większy niż 10. Jeśli tak, liczba jest drukowana. Jeśli tak nie jest, nic się nie dzieje.
Możesz także użyć 'Jeśli inaczej' stwierdzenie do wykonywania bardziej złożonych zadań. Załóżmy na przykład, że mamy plik zawierający listę nazw użytkowników i ich wieki, i chcemy wydrukować nazwy użytkowników użytkowników, którzy mają ponad 18 lat. Możemy użyć oświadczenia „IF-Else”, aby wykonać to zadanie w następujący sposób:
awk 'if (2 $> 18) print $ $ else print „Użytkownik nie jest wystarczająco dorosły” użytkownicy.tekst1 | awk 'if (2 $> 18) print $ $ else print „Użytkownik nie jest wystarczająco dorosły” użytkownicy.tekst |
Tutaj 'Jeśli' Oświadczenie sprawdza, czy drugie pole (2 USD) jest większy niż 18. Jeśli tak, nazwa użytkownika jest drukowana. Jeśli tak nie.
Instrukcja przełącznika z AWK
'przełącznik' Instrukcja w AWK umożliwia wykonywanie różnych poleceń na podstawie wielu warunków. Zapewnia bardziej zwięzły sposób wyrażania wielu 'Jeśli inaczej' sprawozdania. Składnia dla 'przełącznik' Oświadczenie jest następujące:
przełącznik (zmienna) case value1: # Polecenia do wykonania, jeśli zmienna == Wartość 1 Break Case Wartość 2: # Polecenia do wykonania, jeśli zmienna == Wartość 2 Break… domyślnie: # Polecenia do wykonania, jeśli żadne przypadki nie pasuje1234567891011 | przełącznik (zmienna) case value1: # Polecenia do wykonania, jeśli zmienna == Wartość 1 Break Case Wartość 2: # Polecenia do wykonania, jeśli zmienna == Wartość 2 Break ... Domyślnie: # polecenia do wykonania, jeśli żaden z przypadków nie pasuje do |
Tutaj, 'zmienny' to zmienna lub wyrażenie, które chcesz porównać z różnymi wartościami. „wartość1”, „wartość2”, itp. to różne wartości, z którymi chcesz porównać. 'przerwa' Instrukcja służy do wyjścia 'przełącznik' Znalezienie stwierdzenia po meczu. 'domyślny' Słowo kluczowe służy do określenia poleceń do wykonywania, jeśli żaden z przypadków nie pasuje.
Załóżmy na przykład, że mamy plik zawierający listę języków programowania i chcemy wydrukować nazwę języka programowania na podstawie rozszerzenia pliku. Możemy użyć 'przełącznik' Oświadczenie o wykonaniu tego zadania w następujący sposób:
awk 'switch ($ nf) case "py": print "python"; przerwa; case „rb”: drukuj „Ruby”; przerwa; Case „JS”: drukuj „javascript”; przerwa; Domyślnie: wydrukuj języki „nieznane”.tekst1 | awk 'switch ($ nf) case "py": print "python"; przerwa; case „rb”: drukuj „Ruby”; przerwa; Case „JS”: drukuj „javascript”; przerwa; Domyślnie: wydrukuj języki „nieznane”.tekst |
Tutaj używamy 'przełącznik' Oświadczenie o porównaniu ostatniego pola ($ Nf) przeciwko różnym wartościom („py”, „rb”, „js”). Jeśli wartość pasuje, drukujemy nazwę języka programowania. Jeśli to nie pasuje, drukujemy "Nieznany".
Trójskładnicy z AWK
„Operator trójskładnikowy” w AWK to krótka wersja 'Jeśli inaczej' oświadczenie. Pozwala na wykonanie prostej operacji if-else w jednym wierszu. Składnia dla operatora trójskładnikowego jest następująca:
(stan : schorzenie) ? True-Wartość: Fałszywa wartość1 | (stan : schorzenie) ? True-Wartość: Fałszywa wartość |
Tutaj, 'stan„To logiczne wyrażenie, które chcesz ocenić. 'prawdziwa wartość' to wartość, którą należy zwrócić, jeśli warunek jest prawdziwy. „fałszywa wartość” to wartość, którą należy zwrócić, jeśli warunek jest fałszywy.
Załóżmy na przykład, że mamy plik zawierający listę liczb i chcemy wydrukować "Nawet" Jeśli liczba jest równa i "Dziwne" Jeśli liczba jest dziwna. Możemy użyć operatora trójskładnikowego, aby wykonać to zadanie w następujący sposób:
awk 'print (1 % 2 == 0) ? Liczby „nawet”: „dziwne”.tekst1 | awk 'print (1 % 2 == 0) ? Liczby „nawet”: „dziwne”.tekst |
Tutaj używamy operatora trójskładnikowego, aby sprawdzić, czy numer w pierwszym polu (1 USD) jest parzyste lub dziwne. Jeśli tak jest, drukujemy "Nawet". Jeśli to dziwne, drukujemy "Dziwne".
Wniosek
Podsumowując, instrukcje warunkowe są potężną funkcją AWK, która pozwala użytkownikom wykonywać zaawansowane zadania przetwarzania tekstu. 'Jeśli inaczej' Instrukcja jest podstawową instrukcją warunkową, która umożliwia wykonywanie różnych poleceń na podstawie określonego warunku. Przez opanowanie 'Jeśli inaczej' Oświadczenie i inne instrukcje warunkowe, możesz stać się bardziej skuteczny i wydajny w swoich skryptach AWK oraz z łatwością wykonać złożone zadania przetwarzania tekstu.