I-Awk: Ukufunda iShell Scripting usebenzisa i-awk Terminal Command
Umyalelo "awk" kwiiNkqubo eziSimahla zokuSebenza zohlobo lwe-GNU / Linux ngumyalelo onamandla kakhulu, osinceda ukuba sibe nolawulo olukhulu xa siqhubekeka idatha evela kweminye imiyalelo okanye imiyalelo yomyalelo. Igama AWK livela koonobumba bokuqala bamagama ababhali bayo: Alfred Aho, peter Weinberger, kunye noBrian Kmzantsiweb.
Lo myalelo ubonelela ngolwimi olubhaliweyo ukulungiselela ukuqhubekeka kokubhaliweyo esinokuthi: Chaza izinto eziguquguqukayo, sebenzisa imitya kunye nabaqhubi bezibalo, sebenzisa ulawulo lokuhamba kunye nemijikelezo, kwaye wenze iingxelo ezifomathiweyo. Ngokwenyani, i-Awk ingaphezulu komyalelo wokuqhubekeka kweepateni, lulwimi lonke lokuhlalutya semantic.
Index
- 1 Intshayelelo kumyalelo "awk"
- 2 Imizekelo esebenzayo
- 2.1 Uluhlu lwemiyalelo esetyenzisiweyo
- 2.2 Igrafu (Itafile) nenani lonxibelelwano kumamkeli ngamnye
- 2.3 Uluhlu lweZalathiso ngokobungakanani
- 2.4 Bonisa ukugcwala kuthungelwano lwenethiwekhi
- 2.5 Fumana uthotho lweenombolo ze-fibonacci
- 2.6 Uluhlu lwemizobo yolwakhiwo lwefayile ngokobungakanani
- 2.7 Dwelisa isishwankathelo seentlobo zeefayile kulawulo
Intshayelelo kumyalelo "awk"
I-AWK yenye yezinto zokuqala ezithandwayo zeconsole ukulawula (ukuphatha / ukukhupha) idatha ngokwandisa ukusebenza kwemibhobho ye-UNIX. Ulwimi olunikezwe sesi sixhobo kungumgangatho phantse kuzo zonke iiNkqubo zokuSebenza zanamhlanje ze-UNIX, kangangokuba iyinxalenye yeenkcukacha ezisisiseko ze-UNIX, ngenxa yoko ihlala ifakiwe kuninzi lwazo ngokungagqibekanga.
Eyona syntax ixhaphakileyo yile: awk 'inkqubo' iifayile kwaye apho 'inkqubo' inokuba khona: ipateni {isenzo} iphethini {inyathelo}. Umyalelo ufunda ungeniso lwefayile umgca omnye ngexesha. Umqolo ngamnye uthelekiswa kwipatheni nganye ngokulandelelana; Kwipateni nganye ehambelana nomqolo, isenzo esihambelanayo siyenziwa.
Umzekelo olula onje:
awk -F: '$1=="root" {print}' /etc/passwd
ibuza umhlaba wokuqala ukuba yingcambu yomgca ngamnye kwi / etc / passwd kwaye uyiprinte ngokujonga ":" nge -F: njengomahluli wentsimi.
Imizekelo esebenzayo
Uluhlu lwemiyalelo esetyenzisiweyo
Jonga uluhlu olusekwe kwimbali yesiphelo sendlela eyalelwe ukusuka kweyona isetyenziswa rhoqo ukuya kuncinci.
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
Umzekelo:
Igrafu (Itafile) nenani lonxibelelwano kumamkeli ngamnye
Yenza igrafu esekwe kwisicatshulwa se-ASCII ebonisa inani elipheleleyo lonxibelelwano ukusuka kumamkeli kwidilesi nganye ye-IP.
netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'
Umzekelo:
Uluhlu lweZalathiso ngokobungakanani
Phrinta kwiscreen uluhlu lwemikhombandlela yendlela yangoku ukusuka kwelona likhulu ukuya kwelona lincinci libonisa iilebheli ezihambelana nobungakanani bazo usebenzisa oonobumba: g, m, kunye k
du --max-depth=1 | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'
Umzekelo:
Bonisa ukugcwala kuthungelwano lwenethiwekhi
Jonga ukusetyenziswa kwedatha engenayo nephumayo kwi-intanethi kwii-kilobytes (kb) zonxibelelwano oluchaziweyo.
while [ /bin/true ]; do OLD=$NEW; NEW=`cat /proc/net/dev | grep eth0 | tr -s ' ' | cut -d' ' -f "3 11"`; echo $NEW $OLD | awk '{printf("\rin: % 9.2g\t\tout: % 9.2g", ($1-$3)/1024, ($2-$4)/1024)}'; sleep 1; done
Umzekelo:
Fumana uthotho lweenombolo ze-fibonacci
Yenza uluhlu lweenombolo ze-X ezilandela iphethini yefibonacci enikwe amanani esiseko ama-2 ukuba awakhiwe.
seq 50| awk 'BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}'
Umzekelo:
Uluhlu lwemizobo yolwakhiwo lwefayile ngokobungakanani
Fumana uLuhlu lwazo zonke iifolda ezingcanjini zenkqubo yokusebenza kunye nemizobo (imivalo) kunye nokumelwa ngokwamanani njengepesenti yesayizi yazo ngaphakathi kwayo.
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');sudo du / --max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++){printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'
Umzekelo:
Dwelisa isishwankathelo seentlobo zeefayile kulawulo
Bonisa uluhlu lweentlobo zeefayile eziqulathwe kwisikhombisi kunye nenani leefayile ezihambelana nayo.
find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g
Umzekelo:
Le mizekelo yemigca yokuyalela usebenzisa awk command ndiyathemba ukuba uyifumana iluncedo kakhulu. Kwaye zisebenza ukuba zisetyenziswe ngokuthe ngqo kwikhonsoli okanye ngokungathanga ngqo ngokuzifaka kwiskripthi (umsebenzi ozenzekelayo).
Kwiposti elandelayo kwi-Shell Scripting siza kuphonononga eminye imiyalelo.
Ukuba ufuna ukufunda okungakumbi malunga nomyalelo "grep" ndwendwela eli khonkco "UDEBIAN Wiki”Kwaye ukuba ufuna ukufunda okungakumbi malunga neShell script kwiBlog yethu, unokujonga ezinye iimpapasho ngalo mbandela, ngokunqakraza apha: Ukushicilela kwiLinux
Izimvo, shiya eyakho
Ndiqonde kuphela umzekelo wokuqala, ayikho enye into 🙁