Pri obravnavi številskih ali niznih vrednosti v vrstici besedila je filtriranje besedila ali nizov z uporabo primerjalnih operaterjev zelo priročno za Awk uporabniki ukazov.
V tem delu Serija Awk, pogledali bomo, kako lahko filtrirate besedilo ali nize z uporabo operaterjev za primerjavo. Če ste programer, se morate že seznaniti s primerjalnimi operaterji, toda tisti, ki niso, naj vam razložim v spodnjem razdelku.
Primerjalni operaterji v Awku se uporabljajo za primerjavo vrednosti števil ali nizov in vključujejo naslednje:
>
- večji kot<
- manj kot>=
- večji ali enak<=
- manjši ali enak==
- enako!=
- ni enakosome_value ~ / vzorec /
- res, če se neka_vrednost ujema z vzorcemneka_vrednost! ~ / vzorec /
- drži, če se neka vrednost ne ujema z vzorcemZdaj, ko smo v Awku pogledali različne operaterje za primerjavo, jih bolje razumejmo s primerom.
V tem primeru imamo datoteko z imenom food_list.txt ki je nakupovalni seznam različnih živil in bi rad označil živila, katerih količina je manjša ali enaka 20 z dodajanjem (**)
na koncu vsake vrstice.
Datoteka - food_list.txt
No Item_Name Količina Cena. 1 mango 45 3,45 USD. 2 jabolki 25 2,45 USD. 3 ananasi 5 4,45 USD. 4 paradižniki 25 3,45 USD. 5 Čebula 15 1,45 USD. 6 banan 30 3,45 USD.
Splošna skladnja za uporabo primerjalnih operaterjev v Awku je:
# izraz {dejanja; }
Za dosego zgornjega cilja bom moral zagnati spodnji ukaz:
# awk '$ 3 <= 30 {printf "%s \ t%s \ n", $ 0, "**"; } 3 $> 30 {print $ 0;} 'food_list.txtNo Item_Name` Količina Cena. 1 mango 45 3,45 USD. 2 jabolki 25 $ 2,45 ** 3 ananasi 5 4,45 USD ** 4 paradižniki 25 3,45 USD ** 5 čebule 15 1,45 USD ** 6 banan 30 3,45 USD **
V zgornjem primeru se zgodita dve pomembni stvari:
Še en primer:
# awk '$ 3 <= 20 {printf "%s \ t%s \ n", $ 0, "TRUE"; } 3 $> 20 {print $ 0;} 'food_list.txt No Item_Name Količina Cena. 1 mango 45 3,45 USD. 2 jabolki 25 2,45 USD. 3 ananasi 5 4,45 USD RES. 4 paradižniki 25 3,45 USD. 5 Čebula 15 1,45 USD RES. 6 banan 30 3,45 USD.
V tem primeru želimo označiti vrstice s količino manjšo ali enako 20 z besedo (PRAV) na koncu.
To je uvodna vadnica za primerjalne operaterje v Awk, zato morate preizkusiti številne druge možnosti in odkriti več.
V primeru kakršnih koli težav, s katerimi se srečujete, ali kakršnih koli dodatkov, ki jih imate v mislih, spustite komentar v spodnji razdelek za komentarje. Ne pozabite prebrati naslednjega dela serije Awk, kjer vas bom popeljal skozi sestavljene izraze.