Celý čas sme sa pozerali na jednoduché výrazy pri kontrole, či bola podmienka splnená alebo nie. Čo keď chcete použiť viac ako jeden výraz na kontrolu konkrétneho stavu?
V tomto článku sa pozrieme na to, ako môžete kombinovať viac výrazov označovaných ako zložené výrazy a skontrolovať tak podmienku pri filtrovaní textu alebo reťazcov.
V Awk, zložené výrazy sú postavené pomocou &&
odkazovaný ako (a)
a ||
odkazovaný ako (alebo)
zložené operátory.
Všeobecná syntax pre zložené výrazy je:
(prvý_výraz) && (druhý_výraz)
Tu, prvý_výraz
a druhý_výraz
musí byť pravdivý, aby bol celý výraz pravdivý.
(prvý_výraz) || (druhý_výraz)
Tu je jeden z výrazov prvý_výraz
alebo druhý_výraz
musí byť pravdivá, aby bol pravdivý celý výraz.
Pozor: Nezabudnite vždy uviesť zátvorku.
Výrazy je možné zostaviť pomocou porovnávacích operátorov, na ktoré sme sa pozreli Štvrtá časť awk série.
Teraz získame jasné porozumenie pomocou nasledujúceho príkladu:
V tomto prípade máte textový súbor s názvom tecmint_deals.txt
, ktorý obsahuje zoznam niektorých úžasných náhodných ponúk Tecmint, obsahuje názov obchodu, cenu a typ.
Zoznam ponúk TecMint
Bez názvu Typ ceny. 1 Softvér Mac_OS_X_Cleanup_Suite za 9,99 dolárov. 2 Základy_Notebook 14,99 dolárov Životný štýl. 3 Tactical_Pen 25,99 dolárov Životný štýl. 4 Scapple 19,00 dolárov Neznámy. 5 Nano_Tool_Pack 11,99 dolárov Neznámy. 6 Ditto_Bluetooth_Altering_Device 33,00 dolárov Tech. 7 Nano_Prowler_Mini_Drone 36,99 dolárov Tech
Povedzme, že chceme iba ponuky a vlajky, ktoré sú uvedené vyššie $20 a typu "Tech" pomocou (**)
znak na konci každého riadka.
Musíme spustiť príkaz uvedený nižšie.
# awk '($ 3 ~ /^$[2-9][0-9]*\.[0-9][0-9]$/) && ($ 4 == "Tech") {printf "%s \ t%s \ n ", 0 dolárov,"*"; } 'tecmint_deals.txt 6 Ditto_Bluetooth_Altering_Device $33.00Technika * 7 Nano_Prowler_Mini_Drone $36.99Technika *
V tomto prípade sme v zloženom výraze použili dva výrazy:
Nezabudnite, že riadok bude označený iba znakom (**)
, ak prvý výraz a druhý výraz sú pravdivé, ako uvádza princíp &&
operátor.
Niektoré podmienky vždy vyžadujú, aby ste vytvorili zložené výrazy, aby zodpovedali presne tomu, čo chcete. Keď porozumiete použitiu operátorov porovnávania a zloženého výrazu, potom bude filtrovanie textu alebo reťazcov na základe niektorých náročných podmienok jednoduché.
Dúfame, že vám bude táto príručka užitočná a v prípade akýchkoľvek otázok alebo dodatkov vždy zanechajte komentár a vaše obavy budú zodpovedajúcim spôsobom vyriešené.