Jak stosować wyrażenia złożone z AWK w Linux - część 5

Jak stosować wyrażenia złożone z AWK w Linux - część 5

Przez cały czas patrzyliśmy na proste wyrażenia podczas sprawdzania, czy warunek był spełniony, czy nie. Co jeśli chcesz użyć więcej niż jedno wyrażenie, aby sprawdzić określony warunek w?

W tym artykule przyjrzymy się temu, jak możesz połączyć wiele wyrażeń określanych jako wyrażenia złożone, aby sprawdzić warunek podczas filtrowania tekstu lub ciągów.

W Awk, Wyrażenia złożone są budowane za pomocą && do którego odnosi się (I) i || do którego odnosi się (Lub) operatorzy złożoności.

Ogólna składnia dla wyrażeń złożonych wynosi:

(First_Expression) && (Second_Expression) 

Tutaj, First_Expression I Second_Expression musi być prawdziwe, aby całe wyrażenie było prawdziwe.

(First_Expression) || (Second_Expression) 

Tutaj jeden z wyrażeń First_Expression Lub Second_Expression musi być prawdziwe, aby całe wyrażenie było prawdziwe.

Ostrożność: Pamiętaj, aby zawsze uwzględniać nawias.

Wyrażenia można zbudować za pomocą operatorów porównawczych, na które oglądaliśmy w części 4 serii AWK.

Uzyskajmy teraz jasne zrozumienie, używając poniższego przykładu:

W tym przykładzie posiadaj plik tekstowy o nazwie TecMint_deals.tekst, który zawiera listę niesamowitych losowych ofert Tecmint, zawiera nazwę umowy, cenę i typ.

Lista ofert Tecmint
Brak ceny nazwy typ 1 Mac_OS_X_CLEANUP_SUITE 9 USD.99 Software 2 Basics_notebook 14 USD.99 Lifestyle 3 Tactical_Pen 25 $.99 Lifestyle 4 Scapple 19 USD.00 nieznane 5 nano_tool_pack 11 USD.99 nieznane 6 ditto_bluetooth_altering_device 33 $.00 Tech 7 nano_prowler_mini_drone 36 USD.99 Tech 

Powiedz, że chcemy tylko drukować i flagi, które są powyżej 20 USD i typu „Tech” używając (**) podpisać na końcu każdej linii.

Będziemy musieli uruchomić polecenie poniżej.

# awk '(3 $ ~ /^$ [2-9] [0-9]*\.[0-9] [0-9] $/) && (4 $ == "Tech") printf "%s \ t%s \ n", 0 $, „*”;  'TecMint_deals.tekst  6 Ditto_Bluetooth_Altering_Device 33 USD.00 Tech * 7 nano_prowler_mini_drone 36 USD.99 Tech * 

W tym przykładzie zastosowaliśmy dwa wyrażenia w wyrażeniu złożonym:

  1. Pierwsze wyrażenie, (3 $ /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/) ; sprawdza linie z ofertami z ceną powyżej 20 USD, I to prawda tylko wtedy, gdy wartość 3 USD która jest cena pasuje do wzoru /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/
  2. I drugie wyrażenie, (4 USD == „Tech”) ; sprawdza, czy umowa jest typowa „Tech” I to prawda tylko wtedy, gdy wartość 4 USD równa „Tech”.

Pamiętaj, że linia zostanie oznaczona tylko za pomocą (**), Jeśli Pierwsze wyrażenie I drugie wyrażenie są prawdziwe, jak stwierdza zasada && operator.

Streszczenie

Niektóre warunki zawsze wymagają wyrażeń złożonych budowania, aby dopasować dokładnie to, czego chcesz. Kiedy zrozumiesz zastosowanie operatorów porównawczych i złożonych, filtrowanie tekstu lub ciągów opartych na niektórych trudnych warunkach stanie się łatwe.

Mam nadzieję, że ten przewodnik będzie przydatny i do wszelkich pytań lub dodatków, zawsze pamiętaj o zostawieniu komentarza, a twój problem zostanie odpowiednio rozwiązany.