Giunsa Paggamit ang mga Operator sa Pagtandi sa Awk sa Linux - Bahin 4


Kung nag-atubang sa mga numerical o string value sa usa ka linya sa teksto, ang pagsala sa teksto o mga string gamit ang mga operator sa pagtandi magamit alang sa mga tiggamit sa Awk command.

Niini nga bahin sa serye sa Awk, atong tan-awon kung giunsa nimo pagsala ang teksto o mga kuwerdas gamit ang mga operator sa pagtandi. Kung ikaw usa ka programmer nan kinahanglan nga pamilyar ka sa mga operator sa pagtandi apan kadtong dili, tugoti ako nga ipasabut sa seksyon sa ubos.

Ang mga operator sa pagtandi sa Awk gigamit sa pagtandi sa bili sa mga numero o mga kuwerdas ug naglakip kini sa mosunod:

  1. > – labaw pa sa
  2. < – ubos sa
  3. >= – mas dako o katumbas sa
  4. <= – ubos o katumbas sa
  5. == – katumbas sa
  6. != – dili katumbas sa
  7. some_value ~/pattern/ – tinuod kung some_value motakdo sa pattern
  8. some_value !~/pattern/ – tinuod kon some_value dili motakdo sa pattern

Karon nga atong gitan-aw ang lain-laing mga operator sa pagtandi sa Awk, mas masabtan nato sila gamit ang usa ka pananglitan.

Niini nga pananglitan, aduna kitay file nga gihinganlan og food_list.txt nga usa ka lista sa pagpamalit alang sa lain-laing mga pagkaon ug gusto nakong i-flag ang mga pagkaon nga ang gidaghanon mas ubos o katumbas sa 20 pinaagi sa pagdugang (**) sa katapusan sa matag linya.

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

Ang kinatibuk-ang syntax sa paggamit sa mga operator sa pagtandi sa Awk mao ang:

# expression { actions; }

Aron makab-ot ang tumong sa ibabaw, kinahanglan nakong ipadagan ang sugo sa ubos:

# 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	**

Sa pananglitan sa ibabaw, adunay duha ka importanteng butang nga mahitabo:

  1. Ang unang ekspresyon { aksyon ; } kombinasyon, $3 <= 30 { printf “%s\t%s\n”, $0,”**” ; } nag-imprenta sa mga linya nga ubos ang gidaghanon o katumbas sa 30 ug nagdugang ug (**) sa kataposan sa matag linya. Ang bili sa gidaghanon ma-access gamit ang $3 field variable.
  2. Ang ikaduhang ekspresyon {aksyon; } kombinasyon, $3 > 30 { print $0 ;} nag-imprenta sa mga linya nga wala mausab tungod kay ang ilang gidaghanon mas dako pa kay sa 30.

Usa pa ka pananglitan:

# 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

Sa kini nga pananglitan, gusto namon nga ipakita ang mga linya nga adunay gamay nga gidaghanon o katumbas sa 20 nga adunay pulong (TINUOD) sa katapusan.

Summary

Kini usa ka pasiuna nga panudlo sa pagtandi sa mga operator sa Awk, busa kinahanglan nimo nga sulayan ang daghang uban pang mga kapilian ug pagdiskobre pa.

Kung adunay mga problema nga imong giatubang o bisan unsang mga pagdugang nga naa sa imong hunahuna, unya ihulog ang usa ka komento sa seksyon sa komento sa ubos. Hinumdomi nga basahon ang sunod nga bahin sa serye sa Awk diin dad-on ko ikaw pinaagi sa mga compound nga ekspresyon.