Yadda ake Amfani da Umurni na gaba tare da Awk a cikin Linux - Sashe na 6


A cikin wannan kashi na shida na jerin Awk, za mu duba yin amfani da na gaba umarni, wanda ke gaya wa Awk ya tsallake duk sauran alamu da maganganun da kuka tanadar, amma maimakon haka karanta layin shigarwa na gaba.

Umurnin na gaba yana taimaka maka ka hana aiwatar da abin da zan kira matakan bata lokaci a cikin aiwatar da umarni.

Don fahimtar yadda yake aiki, bari mu yi la'akari da fayil mai suna food_list.txt mai kama da wannan:

No      Item_Name               Price           Quantity
1       Mangoes                 $3.45              5
2       Apples                  $2.45              25
3       Pineapples              $4.45              55
4       Tomatoes                $3.45              25
5       Onions                  $1.45              15
6       Bananas                 $3.45              30

Yi la'akari da gudanar da umarni mai zuwa wanda zai nuna alamar kayan abinci waɗanda adadinsu bai kai ko daidai da 20 ba tare da alamar (*) a ƙarshen kowane layi:

# awk '$4 <= 20 { printf "%s\t%s\n", $0,"*" ; } $4 > 20 { print $0 ;} ' food_list.txt 

No	Item_Name		Price		Quantity
1	Mangoes			$3.45		   5	*
2	Apples			$2.45              25
3	Pineapples		$4.45              55
4	Tomatoes		$3.45              25 
5	Onions			$1.45              15	*
6	Bananas	                $3.45              30

Umurnin da ke sama a zahiri yana aiki kamar haka:

  1. Na farko, yana bincika ko adadin, fili na huɗu na kowane layin shigarwa bai kai ko daidai da 20 ba, idan darajar ta cika wannan sharadi, ana buga shi kuma a buga shi da alamar (*) a ƙarshe ta amfani da furci ɗaya: $4 <= 20
  2. Na biyu, yana bincika idan filin na huɗu na kowane layin shigarwa ya fi 20, kuma idan layin ya cika yanayin ana buga shi ta amfani da magana biyu: $4> 20/li>

Amma akwai matsala ɗaya a nan, lokacin da aka aiwatar da furci na farko, ana buga layin da muke son tuta ta amfani da: { printf \%s %s \, $0, \**\ ; } sannan kuma a cikin wannan mataki, ana kuma duba magana ta biyu wadda ta zama abin ɓata lokaci.

Don haka babu buƙatar sake aiwatar da furci na biyu, $4> 20 bayan buga layukan da aka riga aka buga waɗanda aka buga ta amfani da furci na farko.

Don magance wannan matsalar, dole ne ku yi amfani da umarnin na gaba kamar haka:

# awk '$4 <= 20 { printf "%s\t%s\n", $0,"*" ; next; } $4 > 20 { print $0 ;} ' food_list.txt

No	Item_Name		Price		Quantity
1	Mangoes			$3.45		   5	*
2	Apples			$2.45              25
3	Pineapples		$4.45              55
4	Tomatoes		$3.45              25 
5	Onions			$1.45              15	*
6	Bananas	                $3.45              30

Bayan an buga layin shigarwa guda ɗaya ta amfani da $4 <= 20 { printf \%s %s \, $0, \*\ ; gaba ; }, umarnin na gaba da aka haɗa zai taimaka tsallake furci na biyu $4> 20 { buga $0 ;}, don haka aiwatarwa yana zuwa layin shigarwa na gaba ba tare da bata lokaci ba akan bincika ko adadin ya fi 20.

Umurni na gaba yana da matukar mahimmanci shine rubuta ingantattun umarni kuma idan ya cancanta, koyaushe zaka iya amfani dashi don hanzarta aiwatar da rubutun. Yi shiri don sashi na gaba na jerin inda za mu duba ta amfani da daidaitaccen shigarwa (STDIN) azaman shigarwa don Awk.

Da fatan za ku sami wannan yadda ake shiryar da taimako kuma za ku iya kamar koyaushe rubuta tunanin ku a rubuce ta hanyar barin sharhi a sashin sharhi a ƙasa.