Jak używać operatorów porównawczych z AWK w Linux - część 4

Jak używać operatorów porównawczych z AWK w Linux - część 4

W przypadku wartości numerycznych lub łańcuchowych w wierszu tekstu, filtrowanie tekstu lub ciągów przy użyciu operatorów porównawczych przydaje Awk użytkownicy poleceń.

W tej części serii AWK przyjrzymy się, w jaki sposób możesz filtrować tekst lub ciągi za pomocą operatorów porównawczych. Jeśli jesteś programistą, musisz już znać operatorów porównawczych, ale tych, którzy nie są, pozwól, że wyjaśnię w poniższej sekcji.

Jakie są operatorzy porównawcze w AWK?

Operatorzy porównawcze w AWK służą do porównania wartości liczb lub ciągów i obejmują następujące:

  1. > - Lepszy niż
  2. < - mniej niż
  3. > = - większe bądź równe
  4. <= - mniejszy lub równy
  5. == - równy
  6. != - nie równe
  7. Some_value ~ / wzór / - Prawda, jeśli jakiś wartość_wagi pasuje do wzoru
  8. Some_value !~ / wzór / - To prawda, że ​​jakiś wartość nie pasuje do wzoru

Teraz, gdy spojrzeliśmy na różnych operatorów porównawczych w AWK, pozwól nam lepiej zrozumieć, używając przykładu.

W tym przykładzie mamy plik o nazwie Food_list.tekst która jest listą zakupów dla różnych artykułów spożywczych i chciałbym oznaczyć produkty żywnościowe, których ilość jest mniejsza lub równa 20, dodając (**) Na końcu każdej linii.

Plik - Food_list.tekst
Brak Item_name Cena 1 Mangoes 45 3 USD.45 2 jabłka 25 $ 2.45 3 ananasy 5 $ 4.45 4 pomidory 25 $ 3.45 5 cebuli 15 $ 1.45 6 bananów 30 $ 3.45 

Ogólna składnia do korzystania z operatorów porównawczych w AWK to:

# wyrażenie Actions;  

Aby osiągnąć powyższy cel, będę musiał uruchomić polecenie poniżej:

# AWK '3 30 $ drukuj 0; „Food_list.tekst Brak nazwy Item „Cena ilości 1 mango 45 3 USD.45 2 jabłka 25 $ 2.45 ** 3 ananasy 5 $ 4.45 ** 4 pomidory 25 $ 3.45 ** 5 cebuli 15 $ 1.45 ** 6 Banany 30 $ 3.45 ** 

W powyższym przykładzie zdarzają się dwie ważne rzeczy:

  1. Pierwsze wyrażenie działanie ; połączenie, 3 USD <= 30 printf „%s \ t%s \ n”, 0 $, ”**”; Wydrukuje linie o ilości mniejszej lub równej 30 i dodaje (**) Na końcu każdej linii. Dostęp do wartości ilości jest za pomocą 3 USD zmienna polowa.
  2. Drugie wyrażenie działanie ; połączenie, 3 $> 30 drukuj 0 $; Wydrukuje linie niezmienione, ponieważ ich ilość jest niższa 30.

Jeszcze jeden przykład:

# AWK '3 20 $ drukuj 0;' food_list.tekst  Brak Item_name Cena 1 Mangoes 45 3 USD.45 2 jabłka 25 $ 2.45 3 ananasy 5 $ 4.45 True 4 Pomidory 25 $ 3.45 5 cebuli 15 $ 1.45 True 6 Bananas 30 $ 3.45 

W tym przykładzie chcemy wskazać linie o ilości mniejszej lub równej 20 słowem (PRAWDA) na końcu.

Streszczenie

To jest samouczek wprowadzający do porównywania operatorów Awk, Dlatego musisz wypróbować wiele innych opcji i odkryć więcej.

W przypadku wszelkich problemów lub wszelkich dodatków, o których masz na myśli, porzuć komentarz w sekcji komentarzy poniżej. Pamiętaj, aby przeczytać następną część serii AWK, w której przejdę przez wyrażenia złożone.