Jak stosować wyrażenia złożone z AWK w Linux - część 5
- 2821
- 338
- Laura Zygmunt
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.
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:
- 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] $/
- 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.
- « VLOCK - inteligentny sposób blokowania wirtualnej konsoli lub terminalu użytkownika w Linux
- Jak używać operatorów porównawczych z AWK w Linux - część 4 »