Cijelo vrijeme smo gledali jednostavne izraze pri provjeri je li neki uvjet ispunjen ili ne. Što ako želite koristiti više od jednog izraza za provjeru određenog stanja u?
U ovom ćemo članku pogledati kako možete kombinirati više izraza koji se nazivaju složeni izrazi kako biste provjerili stanje pri filtriranju teksta ili nizova.
U Awk, složeni izrazi izgrađene su pomoću &&
odnosi se kao (i)
i ||
odnosi se kao (ili)
složeni operatori.
Opća sintaksa za složene izraze je:
(prvi_izraz) && (drugi_izraz)
Ovdje, prvi_izraz
i drugi_izraz
mora biti istinito kako bi cijeli izraz bio istinit.
(prvi_izraz) || (drugi_izraz)
Evo, jedan od izraza prvi_izraz
ili drugi_izraz
mora biti istinito da bi cijeli izraz bio istinit.
Oprez: Ne zaboravite uvijek uključiti zagrade.
Izrazi se mogu izgraditi pomoću operatora usporedbe koje smo pogledali Četvrti dio serije awk.
Dohvatimo sada jasno razumijevanje primjerom u nastavku:
U ovom primjeru, tekstualna datoteka ima naziv tecmint_deals.txt
, koji sadrži popis nekih nevjerojatnih slučajnih ponuda Tecminta, uključuje naziv posla, cijenu i vrstu.
Popis ponuda TecMint
Bez naziva Vrsta cijene. 1 softver za Mac_OS_X_Cleanup_Suite 9,99 USD. 2 Osnove_Bilježnica 14,99 USD Način života. 3 Tactical_Pen 25,99 USD Način života. 4 Scapple 19,00 USD Nepoznato. 5 Nano_Tool_Pack 11,99 USD Nepoznato. 6 Ditto_Bluetooth_Altering_Device 33,00 USD Teh. 7 Nano_Prowler_Mini_Drone 36,99 USD Teh
Recite da želimo samo ispisati i označiti gore navedene ponude $20 i tipa "Tehnika" koristiti (**)
znak na kraju svakog retka.
Morat ćemo pokrenuti naredbu ispod.
# awk '($ 3 ~ /^$[2-9][0-9]*\.[0-9][0-9]$/) && ($ 4 == "Tehnika") {printf "%s \ t%s \ n ", $ 0,"*"; } 'tecmint_deals.txt 6 Isto tako_Bluetooth_Promjenjivi_Uređaj $33.00Tehnika * 7 Nano_Prowler_Mini_Drone $36.99Tehnika *
U ovom primjeru upotrijebili smo dva izraza u složenom izrazu:
Upamtite, linija će biti označena samo s (**)
, ako prvi izraz i drugi izraz su istiniti jer navodi načelo &&
operater.
Neki uvjeti uvijek zahtijevaju sastavljanje složenih izraza kako bi točno odgovarali onome što želite. Kad shvatite upotrebu operatora usporedbe i složenog izraza, filtriranje teksta ili nizova na temelju nekih teških uvjeta postat će lako.
Nadam se da će vam ovaj vodič biti koristan i da za sva pitanja ili dodatke uvijek ostavite komentar i vaša će se briga u skladu s tim riješiti.