Yadda ake Amfani da Awk don Buga Filaye da ginshiƙai a cikin Fayil


A cikin wannan ɓangaren jerin umarni na Linux Awk, za mu kalli ɗayan mahimman abubuwan Awk, wanda shine gyaran filin.

Yana da kyau a san cewa Awk ta atomatik yana rarraba layukan shigarwa da aka ba shi zuwa filayen, kuma ana iya bayyana filin a matsayin saitin haruffan da aka raba da sauran filayen ta hanyar mai raba filin ciki.

Idan kun saba da Unix/Linux ko yin shirye-shiryen bash harsashi, to ya kamata ku san menene madaidaicin fili na cikin gida (IFS). Tsohuwar IFS a cikin Awk shafi ne da sarari.

Wannan shi ne yadda ra'ayin rabuwar filin ke aiki a cikin Awk: lokacin da ya ci karo da layin shigarwa, bisa ga ma'anar IFS, saitin farko na haruffa shine filin daya, wanda aka shiga ta amfani da $1, saitin na biyu na haruffa shine filin biyu, wanda ya kasance filin wasa na biyu. ana samun damar yin amfani da $2, saiti na uku na haruffa filin uku ne, wanda ake samun damar amfani da $3 da sauransu har sai na ƙarshe na haruffa.

Don fahimtar wannan gyaran filin Awk da kyau, bari mu kalli misalan da ke ƙasa:

Misali 1: Na ƙirƙiri fayil ɗin rubutu mai suna tecmintinfo.txt.

# vi tecmintinfo.txt
# cat tecmintinfo.txt

Sannan daga layin umarni, Ina ƙoƙarin buga filayen farko, na biyu da na uku daga fayil ɗin tecmintinfo.txt ta amfani da umarnin da ke ƙasa:

$ awk '//{print $1 $2 $3 }' tecmintinfo.txt

TecMint.comisthe

Daga fitowar da ke sama, zaku iya ganin cewa an buga haruffa daga filayen uku na farko bisa ma'anar IFS wanda shine sarari:

    Ana shiga
  1. Filin daya wanda shine \TecMint.com ta amfani da $1.
  2. Ana samun isa ga
  3. Filin biyu wanda shine \shine ta amfani da $2.
  4. Fiel na uku wanda shine \da ana shiga ta amfani da $3.

Idan kun lura a cikin fitarwar da aka buga, ƙimar filin ba ta rabu ba kuma wannan shine yadda bugu ke aiki ta tsohuwa.

Don duba fitarwa a fili tare da sarari tsakanin ƙimar filin, kuna buƙatar ƙara (,) afareta kamar haka:

$ awk '//{print $1, $2, $3; }' tecmintinfo.txt

TecMint.com is the

Wani muhimmin abu da ya kamata a lura da shi kuma a koyaushe a tuna shi ne cewa amfani da ($) a cikin Awk ya bambanta da yadda ake amfani da shi wajen rubutun harsashi.

A ƙarƙashin rubutun harsashi ana amfani da ($) don samun damar ƙimar masu canji yayin da a cikin Awk ($) ana amfani da shi kawai lokacin samun damar abubuwan da ke cikin filin amma ba don samun dama ga darajar masu canji.

Misali 2: Bari mu kalli wani misali ta amfani da fayil wanda ya ƙunshi layuka da yawa da ake kira my_shoping.list.

No	Item_Name		Unit_Price	Quantity	Price
1	Mouse			#20,000		   1		#20,000
2 	Monitor			#500,000	   1		#500,000
3	RAM_Chips		#150,000	   2		#300,000
4	Ethernet_Cables	        #30,000		   4		#120,000		

Ka ce kuna son buga Unit_Price na kowane abu a cikin jerin siyayya, kuna buƙatar aiwatar da umarnin da ke ƙasa:

$ awk '//{print $2, $3 }' my_shopping.txt 

Item_Name Unit_Price
Mouse #20,000
Monitor #500,000
RAM_Chips #150,000
Ethernet_Cables #30,000

Awk kuma yana da umarnin printf wanda ke taimaka muku wajen tsara kayan aikinku hanya ce mai kyau kamar yadda kuke iya ganin fitarwar da ke sama ba ta isa ba.

Yin amfani da printf don tsara fitarwa na Abun_Name da Unit_Price:

$ awk '//{printf "%-10s %s\n",$2, $3 }' my_shopping.txt 

Item_Name  Unit_Price
Mouse      #20,000
Monitor    #500,000
RAM_Chips  #150,000
Ethernet_Cables #30,000

Takaitawa

Gyara filin yana da mahimmanci yayin amfani da Awk don tace rubutu ko kirtani, yana taimaka muku samun takamaiman bayanai a cikin ginshiƙai a cikin jeri. Kuma a koyaushe ku tuna cewa amfani da ($) afareta a cikin Awk ya bambanta da na rubutun harsashi.

Ina fatan labarin ya taimaka muku kuma ga kowane ƙarin bayani da ake buƙata ko tambayoyi, kuna iya yin sharhi a cikin sashin sharhi.