Wéi benotze Vergläichsbedreiwer mat Awk am Linux - Deel 4
Wann Dir mat numereschen oder Stringwäerter an enger Textlinn handelt, kënnt Dir Text oder Strings mat Vergläichsbedreiwer filteren fir Awk Kommando Benotzer.
An dësem Deel vun der Awk Serie wäerte mir kucken wéi Dir Text oder Strings filtere kënnt mat Vergläichsoperateuren. Wann Dir e Programméierer sidd, da musst Dir scho mat Vergläichsbedreiwer vertraut sinn awer déi déi net sinn, loosst mech an der Rubrik hei drënner erklären.
Vergläichsbedreiwer an Awk gi benotzt fir de Wäert vun Zuelen oder Saiten ze vergläichen a si enthalen déi folgend:
>
– méi grouss wéi<
– manner wéi>=
– méi grouss wéi oder gläich wéi<=
– manner wéi oder gläich wéi==
– gläich wéi!=
– net gläich wéie puer_Wäert ~/Muster/
- wouer wann e puer_Wäert entsprécht mam Mustere puer_Wäert !~/Muster/
- wouer wann iergendeen_Wäert net mam Muster entsprécht
Elo datt mir déi verschidde Vergläichsbedreiwer an Awk gekuckt hunn, loosst eis se besser verstoen mat engem Beispill.
An dësem Beispill hu mir e Fichier mam Numm food_list.txt deen eng Akaafslëscht fir verschidde Liewensmëttelartikelen ass an ech wéilt Iessartikelen markéieren deenen hir Quantitéit manner wéi oder gläich 20 ass andeems Dir (**)
derbäigesat. um Enn vun all Zeil.
No Item_Name Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 3 Pineapples 5 $4.45 4 Tomatoes 25 $3.45 5 Onions 15 $1.45 6 Bananas 30 $3.45
Déi allgemeng Syntax fir Vergläichsbedreiwer an Awk ze benotzen ass:
# expression { actions; }
Fir dat uewe genannten Zil z'erreechen, muss ech de Kommando hei ënnen ausféieren:
# awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt No Item_Name` Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 ** 3 Pineapples 5 $4.45 ** 4 Tomatoes 25 $3.45 ** 5 Onions 15 $1.45 ** 6 Bananas 30 $3.45 **
Am uewe genannte Beispill ginn et zwou wichteg Saachen déi geschéien:
- Den éischten Ausdrock { Aktioun ; } Kombinatioun, $3 <= 30 { printf %s %s , $0,**; } dréckt Linnen mat enger Quantitéit manner wéi oder gläich wéi 30 aus a füügt en (**) um Enn vun all Zeil. De Wäert vun der Quantitéit gëtt zougänglech mat $3 Feldvariabelen.
- Den zweeten Ausdrock { Aktioun ; } Kombinatioun, $3 > 30 { print $0 ;} dréckt Linnen onverännert aus well hir Quantitéit méi wéi 30 ass.
Ee méi Beispill:
# awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20 { print $0 ;} ' food_list.txt No Item_Name Quantity Price 1 Mangoes 45 $3.45 2 Apples 25 $2.45 3 Pineapples 5 $4.45 TRUE 4 Tomatoes 25 $3.45 5 Onions 15 $1.45 TRUE 6 Bananas 30 $3.45
An dësem Beispill wëlle mir Linnen mat enger Quantitéit manner oder gläich wéi 20 mam Wuert (TRUE) um Enn uginn.
Resumé
Dëst ass en Aféierungs-Tutorial fir Betreiber am Awk ze vergläichen, dofir musst Dir vill aner Optiounen ausprobéieren a méi entdecken.
Am Fall vun Probleemer déi Dir konfrontéiert hutt oder Ergänzunge déi Dir am Kapp hutt, schéckt dann e Kommentar an de Kommentarsektioun hei drënner. Denkt drun den nächsten Deel vun der Awk Serie ze liesen wou ech Iech duerch zesummegesate Ausdréck huelen.