Składnia:
Składnia dla czterech rodzajów instrukcji warunkowych jest wspomniana poniżej.
if (warunek)
oświadczenie
Instrukcja wykonuje się, gdy warunek if zwróci prawdziwie.
if (warunek)
Oświadczenie 1
w przeciwnym razie
Oświadczenie-2
Instrukcja-1 wykonuje się, gdy warunek if jest prawdziwy, a instrukcja 2 wykonuje się, gdy zwraca false.
if (warunek)
Oświadczenie 1
Elseif
Oświadczenie-2
Elseif
Oświadczenie-3
… .
w przeciwnym razie
Oświadczenie-n
Ta instrukcja warunkowa służy do wykonywania instrukcji na podstawie wielu warunków. Jeśli pierwszy warunek jest fałszywy, to sprawdza drugi warunek. Jeśli drugi warunek jest fałszywy, sprawdza trzeci warunek i tak dalej. Jeśli wszystkie warunki zwrócą fałsz, wówczas wykona instrukcję części ENES.
(stan : schorzenie) ? Oświadczenie 1: Oświadczenie-2
Operator trójskładnikowy może być używany jako alternatywa instrukcji IF-ELSE. Jeśli warunek jest prawdziwy, instrukcja-1 zostanie wykonana i jeśli warunek false, instrukcja 2 będzie wykonywana.
Przykład-1: Używanie prostego, jeśli w AWK
Utwórz plik tekstowy o nazwie emplyee.tekst z następującą treścią. Załóżmy, że musisz znaleźć nazwisko działu, wiek i pensję pracownika, którego identyfikatorem jest 11002.
pracownik.tekst
11001 Sprzedaż 45 3000 USD
11002 HR 32 1500 $
11003 Marketing 26 1200 USD
11004 HR 25 $ 2500 $
Prosty, jeśli warunek jest używany w poniższym skrypcie do wyszukiwania ID 11002 w pierwszym polu pliku. Jeśli warunek stanie się prawdą, wydrukuje wartości innych pól odpowiedniej linii, w przeciwnym razie nic nie zostanie wydrukowane.
$ awk '
if (1 USD == "11002")
Wydrukuj „Nazwa działu:”, 2 USD, „\ n”;
Wydrukuj „Age:”, 3 USD, „\ n”;
Wydrukuj „Wynagrodzenie:”, 4 USD, „\ n”;
' pracownik.tekst
Wyjście:
Identyfikator, 1102 istnieje w pliku. Wydrukował więc inne wartości pracownika.
Przykład-2: Używanie IF-Else w AWK
Załóżmy, że chcesz wydrukować informacje o wynagrodzeniach pracowników, których wiek jest mniejszy lub równy 40 i wydrukować informacje o wieku dla innych pracowników. Następujący skrypt AWK może wykonać to zadanie. Jest tylko jeden pracownik pracownik.tekst Plik, którego wiek wynosi ponad 40 lat, a wiek wszystkich innych pracowników jest mniejszy niż 40.
$ awk '
if (3 USD <= 40)
Wydrukuj „Wynagrodzenie”, 1 USD, „IS”, 4 USD, „\ n”
w przeciwnym razie
Wydrukuj „Wiek”, 1 USD, „IS”, 3 USD, „\ n”
' pracownik.tekst
Wyjście:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.
Przykład-3: Używanie IF-Elseif w skrypcie AWK
Utwórz plik tekstowy o nazwie osoba.TXT z następującą zawartością.
osoba.tekst
Jackson Male Business
Martin Male Service Posider
Lily Female Manager
Robinson Male CEO
Utwórz plik AWK o nazwie if_elseif.Awk z następującym kodem do wydrukowania ulubionego koloru każdej osoby, której nazwa istnieje w pliku. Instrukcja IF-ELseif jest używana w skrypcie do wykonania tego zadania. Skrypt odczytuje pierwszą wartość pola pliku, pracownik.tekst i sprawdź z określoną wartością. Jeśli pierwszy Jeśli Warunek staje się fałszywy, wtedy sprawdzi drugą Jeśli stan i tak dalej. Gdy jakikolwiek warunek stanie się prawdziwy, zostanie przypisana wartość koloru. Jeśli wszystkie warunki stają się fałszywe, to Nic zostanie przypisany jako wartość koloru. Ulubiony kolor każdej osoby wydrukuje lub „Żadna osoba nie znalazła” Wydrukuje, jeśli nazwa żadna osoba nie pasuje.
if_elseif.Awk
Nazwa = 1 USD;
if (name == "jackson") color = "blue";
else if (name == „Martin”) color = „black”;
else if (name == „lily”) color = „czerwony”;
else if (name == „Robinson”) color = „White”;
else color = "none";
if (kolor!= „Brak”) Wydrukuj „Ulubiony kolor”, nazwa, „to”, kolor;
w przeciwnym razie wydrukuj „Żadna osoba”;
Uruchom następujące polecenie, aby wykonać plik IF_ELseif.Awk z osobą.tekst
$ awk -f if_elseif.Osoba AWK.tekst
Wyjście:
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe.
Przykład-4: Korzystanie z operatora trójskładnikowego w AWK
Trzecie pole osoba.tekst Plik zawiera zawód każdej osoby. Następujący operator trójskładnikowy odczytuje każdą wiersz pliku i pasuje do trzeciego wartości pola do „Menedżer". Jeśli wartość pasuje, wydrukuje nazwę osoby, a w przeciwnym razie wydrukuje płeć osoby.
$ awk 'print (3 $ == „Manager”) ? „Nazwa to” 1 $: „Płeć to„ 2 $ ”.tekst
Wyjście:
Następujące dane wyjściowe pojawi się po wykonaniu skryptu. Jedna osoba z zawodem menedżera istnieje w osoba.tekst. Tak więc nazwa jednej osoby jest drukowana, a płeć drukowana dla innych osób.
Przykład-5: Korzystanie z wielu warunków w instrukcji IF
Logiczne lub logiczne i mogą być używane do zdefiniowania wielu warunków w instrukcji warunkowej skryptu AWK. Poniższy skrypt AWK odczytuje każdy wiersz pracownik.tekst i sprawdza wiek i oznaczenie ze szczególnymi wartościami. Logiczne i jest używane w Jeśli stan. Gdy wartość wieku jest większa lub równa 30, a oznaczenie to „HR”, wówczas odpowiadający identyfikator pracownika i wynagrodzenie wydrukują.
$ awk 'if (3 $> = 30 && $ 2 == "hr") wydrukuj "identyfikator pracownika:",
1 USD, „i”, „pensja:”, 4 USD, „\ n”; 'pracownik.tekst
Wyjście:
Następujące dane wyjściowe pojawi się po wykonaniu skryptu. Istnieje tylko jeden pracownik z oznaczeniem „HR” w pracownik.tekst. ID i wynagrodzenie dla tego pracownika są wydrukowane tutaj.
Najczęstsze zastosowania warunkowego instrukcji dowolnego standardowego programowania są obsługiwane przez AWK Command. Jak możesz używać pojedynczych i wielu warunków w AWK, jest wyjaśnione przy użyciu bardzo prostych przykładów tutaj. Mam nadzieję, że po uprawianiu tych przykładów uczeń będzie mógł prawidłowo użyć instrukcji warunkowej w skrypcie AWK.