Unsaon Pagtugot sa Awk sa Paggamit sa Shell Variables - Bahin 11


Kung nagsulat kami mga script sa shell, kasagaran among gilakip ang uban pang gagmay nga mga programa o mga mando sama sa mga operasyon sa Awk sa among mga script. Sa kaso sa Awk, kinahanglan namong mangita og mga paagi sa pagpasa sa pipila ka mga kantidad gikan sa shell ngadto sa mga operasyon sa Awk.

Mahimo kini pinaagi sa paggamit sa shell variables sulod sa Awk commands, ug niining bahina sa serye, makakat-on kita unsaon pagtugot sa Awk sa paggamit sa shell variables nga mahimong adunay mga value nga gusto natong ipasa sa Awk commands.

Adunay posible nga duha ka mga paagi nga mahimo nimong magamit ang Awk sa mga variable sa shell:

1. Paggamit sa Shell Quoting

Atong tan-awon ang usa ka pananglitan aron mailustrar kung giunsa nimo magamit ang pagkutlo sa kabhang aron ilisan ang kantidad sa usa ka variable sa kabhang sa usa ka mando sa Awk. Niini nga pananglitan, gusto namong mangita og username sa file /etc/passwd, filter ug i-print ang impormasyon sa account sa user.

Busa, makasulat mi og test.sh script nga adunay mosunod nga sulod:

#!/bin/bash

#read user input
read -p "Please enter username:" username

#search for username in /etc/passwd file and print details on the screen
cat /etc/passwd | awk "/$username/ "' { print $0 }'

Pagkahuman, i-save ang file ug paggawas.

Paghubad sa Awk command sa test.sh script sa ibabaw:

cat /etc/passwd | awk "/$username/ "' { print $0 }'

\/$username/ \ – shell quoting nga gigamit sa pag-ilis sa bili sa shell variable username sa Awk command. Ang bili sa username mao ang sumbanan nga pangitaon sa file /etc/passwd.

Timan-i nga ang dobleng kinutlo anaa sa gawas sa Awk script, ‘{ print $0 }’.

Dayon himoa nga executable ang script ug padagana kini sama sa mosunod:

$ chmod  +x  test.sh
$ ./text.sh 

Human sa pagpadagan sa script, aghaton ka sa pagsulod sa usa ka username, pag-type sa usa ka balido nga username ug pag-hit Enter. Imong tan-awon ang mga detalye sa account sa user gikan sa /etc/passwd file sama sa ubos:

2. Paggamit sa Awk's Variable Assignment

Kini nga pamaagi mas simple ug mas maayo kon itandi sa usa ka paagi sa ibabaw. Sa pagkonsiderar sa panig-ingnan sa ibabaw, makadagan kita usa ka yano nga mando aron matuman ang trabaho. Ubos niini nga pamaagi, gigamit namo ang -v nga opsyon para mag-assign og shell variable ngadto sa Awk variable.

Una, paghimo ug shell variable, username ug i-assign ang ngalan nga gusto namong pangitaon sa /etc/passswd file:

username="aaronkilik"

Dayon i-type ang sugo sa ubos ug i-hit Enter:

# cat /etc/passwd | awk -v name="$username" ' $0 ~ name {print $0}'

Pagpatin-aw sa sugo sa ibabaw:

  1. -v – Awk opsyon para magdeklara ug variable
  2. username – mao ang shell variable
  3. ngalan – mao ang Awk variable

Atong tan-awon pag-ayo ang $0 ~ ngalan sulod sa Awk script, $0 ~ ngalan {print $0}. Hinumdumi, sa dihang gitabonan namo ang mga operator sa pagtandi sa Awk sa Bahin 4 niini nga serye, ang usa sa mga operator sa pagtandi mao ang value ~ pattern, nga nagpasabot: true kung ang value motakdo sa pattern.

Ang output($0) sa cat command nga gipa-pipe sa Awk motakdo sa pattern (aaronkilik) nga mao ang ngalan nga among gipangita sa /etc/passwd, isip resulta, ang Ang operasyon sa pagtandi tinuod. Ang linya nga adunay sulod nga impormasyon sa account sa user i-print dayon sa screen.

Konklusyon

Gitabonan namo ang usa ka importante nga seksyon sa mga feature sa Awk, nga makatabang kanamo sa paggamit sa mga variable sa shell sulod sa mga command sa Awk. Daghang mga higayon, magsulat ka ug gagmay nga mga programa o mga mando sa Awk sulod sa mga script sa shell ug busa, kinahanglan nimo nga adunay klaro nga pagsabut kung giunsa ang paggamit sa mga variable sa shell sa sulod sa mga mando sa Awk.

Sa sunod nga bahin sa serye sa Awk, mag-dive kami sa usa pa ka kritikal nga seksyon sa mga bahin sa Awk, nga mao ang mga pahayag sa pagkontrol sa dagan. Mao nga padayon nga magtan-aw ug magpadayon kita sa pagkat-on ug pagpaambit.