I-Awk: Ukufunda iShell Scripting usebenzisa i-awk Terminal Command

I-Awk: Ukufunda iShell Scripting usebenzisa i-awk Terminal Command

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.

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.

Intshayelelo Umzekelo Awk

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:

Umzekelo 1: Awk command

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:

Umzekelo 2: Awk command

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:

Umzekelo 3: Awk command

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:

Umzekelo 5: Awk command

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:

Umzekelo 6: Awk command

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:

Umzekelo 8: Awk command

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: Iscripting DesdeLinux


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   i-tuxito sitsho

    Ndiqonde kuphela umzekelo wokuqala, ayikho enye into 🙁