Yadda ake Amfani da Ma'aikatan Kwatancen da Awk a cikin Linux - Sashe na 4


Lokacin da ake mu'amala da ƙimar lamba ko kirtani a cikin layin rubutu, tace rubutu ko kirtani ta amfani da ma'aikatan kwatance yana zuwa da amfani ga masu amfani da umarnin Awk.

A cikin wannan ɓangaren jerin Awk, za mu kalli yadda zaku iya tace rubutu ko kirtani ta amfani da ma'aikatan kwatanta. Idan kai mai shirye-shirye ne to dole ne ka riga ka saba da masu yin kwatance amma wadanda ba su ba, bari in yi bayani a sashin da ke kasa.

Ana amfani da masu aikin kwatance a cikin Awk don kwatanta ƙimar lambobi ko kirtani kuma sun haɗa da masu zuwa:

  1. > - ya fi
  2. < - kasa da
  3. >= - mafi girma ko daidai da
  4. <= - kasa ko daidai da
  5. == - daidai da
  6. != - ba daidai yake da
  7. ba
  8. wasu_daraja ~/samfuri/ - gaskiya idan wasu_darajar madaidaitan tsari
  9. wani_daraja !~/samfuri/ - gaskiya idan wasu_darajar bata dace da tsari ba

Yanzu da muka kalli masu yin kwatance daban-daban a Awk, bari mu fahimci su da kyau ta amfani da misali.

A cikin wannan misalin, muna da fayil mai suna food_list.txt wanda jerin siyayya ne na kayan abinci daban-daban kuma ina so in ba da alamar kayan abinci waɗanda adadinsu bai kai ko daidai da 20 ba ta ƙara (**) a karshen kowane layi.

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

Gabaɗaya syntax don amfani da masu aikin kwatance a Awk shine:

# expression { actions; }

Don cimma burin da ke sama, dole ne in aiwatar da umarnin da ke ƙasa:

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

A cikin misalin da ke sama, akwai muhimman abubuwa guda biyu da suke faruwa:

  1. Furcin farko {aiki ; } hade, $3 <= 30 { printf “%s %s , $0,** ; } yana buga layi da yawa ƙasa da ko daidai da 30 kuma yana ƙara (**) a ƙarshen kowane layi. Ana samun damar ƙimar adadin ta amfani da canjin filin $3.
  2. Magana ta biyu {aiki ; } haɗin gwiwa, $3 > 30 {buga $0;} suna buga layin da ba su canza ba tunda yawansu ya fi 30.

Karin misali guda:

# 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

A cikin wannan misali, muna so mu nuna layi tare da yawa ƙasa ko daidai da 20 tare da kalmar (GASKIYA) a ƙarshe.

Takaitawa

Wannan koyaswar gabatarwa ce don kwatanta masu aiki a Awk, saboda haka kuna buƙatar gwada wasu zaɓuɓɓuka da yawa kuma ku sami ƙarin.

Idan akwai wata matsala da kuka fuskanta ko kuma wani ƙarin abin da kuke tunani, to ku jefa sharhi a cikin sashin sharhi a ƙasa. Ku tuna karanta kashi na gaba na jerin Awk inda zan kai ku ta hanyar maganganu masu rikitarwa.