Hela tiden har vi tittat på enkla uttryck när vi kontrollerat om ett villkor har uppfyllts eller inte. Vad händer om du vill använda mer än ett uttryck för att leta efter ett visst tillstånd i?
I den här artikeln ska vi titta på hur du kan kombinera flera uttryck som kallas sammansatta uttryck för att kontrollera om det finns ett tillstånd när du filtrerar text eller strängar.
I Oj, sammansatta uttryck är byggda med &&
kallad (och)
och den ||
kallad (eller)
sammansatta operatörer.
Den allmänna syntaxen för sammansatta uttryck är:
(första_uttryck) && (andra_uttryck)
Här, första_uttryck
och andra_uttryck
måste vara sant för att göra hela uttrycket sant.
(första_uttryck) || (andra_uttryck)
Här, ett av uttrycken heller första_uttryck
eller andra_uttryck
måste vara sant för att hela uttrycket ska vara sant.
Varning: Kom ihåg att alltid inkludera parentesen.
Uttrycken kan byggas med de jämförelseoperatorer som vi tittade på i Del 4 av awk -serien.
Låt oss nu få en klar förståelse med hjälp av ett exempel nedan:
I det här exemplet har a en textfil med namnet tecmint_deals.txt
, som innehåller en lista med några fantastiska slumpmässiga Tecmint -erbjudanden, innehåller det affärens namn, pris och typ.
TecMint Deal List
Inget namn Pristyp. 1 Mac_OS_X_Cleanup_Suite $ 9,99 programvara. 2 Basics_Notebook $ 14,99 Livsstil. 3 Tactical_Pen $ 25,99 Livsstil. 4 Scapple $ 19,00 Okänd. 5 Nano_Tool_Pack $ 11,99 Okänt. 6 Ditto_Bluetooth_Altering_Device $ 33,00 Tekn. 7 Nano_Prowler_Mini_Drone $ 36,99 Tekn
Säg att vi bara vill skriva ut och flagga erbjudanden som finns ovan $20 och av typ "Teknik" använda (**)
tecken i slutet av varje rad.
Vi måste köra kommandot nedan.
# awk '($ 3 ~ /^$$2-9 ]phia0-9] *****- [0-9 ]$0) t%s \ n ", $ 0,"*"; } 'tecmint_deals.txt 6 Ditto_Bluetooth_Altering_Device $33.00Teknik * 7 Nano_Prowler_Mini_Drone $36.99Teknik *
I det här exemplet har vi använt två uttryck i ett sammansatt uttryck:
Kom ihåg att en rad bara markeras med (**)
, om första uttrycket och andra uttrycket är sanna som stater principen om &&
operatör.
Vissa villkor kräver alltid att du bygger sammansatta uttryck för att du ska kunna matcha exakt vad du vill. När du förstår användningen av jämförelse- och sammansatta uttrycksoperatorer blir det enkelt att filtrera text eller strängar baserat på några svåra förhållanden.
Hoppas att du tycker att den här guiden är användbar och för eventuella frågor eller tillägg, kom alltid ihåg att lämna en kommentar och din oro kommer att lösas därefter.