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:

  1. > – méi grouss wéi
  2. < – manner wéi
  3. >= – méi grouss wéi oder gläich wéi
  4. <= – manner wéi oder gläich wéi
  5. == – gläich wéi
  6. != – net gläich wéi
  7. e puer_Wäert ~/Muster/ - wouer wann e puer_Wäert entsprécht mam Muster
  8. e 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:

  1. 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.
  2. 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.