I-Awk: Ukufunda i-Shell Scripting Usebenzisa i-awk Terminal Command

I-Awk: Ukufunda i-Shell Scripting Usebenzisa i-awk Terminal Command

I-Awk: Ukufunda i-Shell Scripting Usebenzisa i-awk Terminal Command

Umyalo we- "awk" ku-Free Operating Systems yohlobo lwe-GNU / Linux umyalo onamandla kakhulu, osisiza ukuba sibe nokulawula okukhulu lapho sicubungula idatha kusuka kweminye imiyalo noma imiyalo. Igama elithi AWK lisuselwa kuma-initials ezibongo zabalobi bayo: Alfred Aho, peter Weinberger, noBrian Kzanele.

Lo myalo uhlinzeka ngolimi lokubhala ukucubungula umbhalo esingakwazi ukuwenza: Chaza okuguquguqukayo, sebenzisa izintambo nama-opharetha wezibalo, sebenzisa ukulawulwa kokugeleza nemijikelezo, futhi wenze imibiko efomathiwe. Empeleni, i-Awk ingaphezu komyalo wokucubungula iphethini, kuwulimi lonke lokuhlaziywa kwesemantic.

Isingeniso kumyalo we- "awk"

I-AWK ingenye yezinsiza zokuqala ezithandwa kakhulu zokuphatha (ukuphatha / ukukhipha) idatha ngokukhulisa ukusebenza kwamapayipi we-UNIX. Ulimi olunikezwe yile nsiza njengamanje luyindinganiso cishe kuwo wonke ama-Operating Systems wesimanje we-UNIX, kangangoba luyingxenye yemininingwane eyisisekelo ye-UNIX, ngakho-ke imvamisa selivele lifakwe kokuningi kokuzenzakalelayo.

I-syntax yayo ejwayelekile kakhulu yile: amafayela we-awk 'program' nokuthi 'program' kungaba kuphi: pattern {action} pattern {action}. Umyalo ufunda okokufaka kwefayela umugqa owodwa ngasikhathi. Umugqa ngamunye uqhathaniswa nephethini ngayinye ngokulandelana; Kwiphethini ngayinye efana nomugqa, kwenziwa isenzo esihambisanayo.

Isibonelo esilula njenge:

awk -F: '$1=="root" {print}' /etc/passwd

icela inkambu yokuqala uma iyimpande yomugqa ngamunye ku / etc / passwd bese iyiphrinta icubungula i - ":" nge -F: njengesahlukanisi senkambu.

Isibonelo Sesingeniso Awk

Izibonelo ezingokoqobo

Uhlu lwemiyalo esetshenziswe kakhulu

Buka uhlu olususelwa kumlando wesistimu yesistimu e-odiwe kusuka kokuvame ukusetshenziswa kakhulu kuya kokuncane.

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

Isibonelo:

Isibonelo 1: Awk command

Igrafu (Ithebula) nenombolo yokuxhumeka komsingathi ngamunye

Dala igrafu esekwe embhalweni ye-ASCII ekhombisa inani eliphelele lokuxhuma kusuka kumsingathi kukheli ngalinye le-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 "" }'

Isibonelo:

Isibonelo 2: Awk command

Uhlu lwezikhombisi ngosayizi

Phrinta esikrinini uhlu lwemikhondo yendlela yamanje kusuka kokukhulu kuya kokuncane kakhulu okukhombisa amalebula ahambelana nosayizi wawo usebenzisa izinhlamvu: g, m, no 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}'

Isibonelo:

Isibonelo 3: Awk command

Khombisa ithrafikhi kusuka kusixhumi esibonakalayo senethiwekhi

Buka ukusetshenziswa kwedatha engenayo nephumayo ku-inthanethi kuma-kilobytes (kb) esibonakalayo esibekiwe senethiwekhi.

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

Isibonelo:

Thola uchungechunge lwezinombolo ze-fibonacci

Dala uhlu lwezinombolo ze-X ezilandela iphethini ye-fibonacci enikezwe izinombolo eziyisisekelo ezi-2 ezizokwakhiwa.

seq 50| awk 'BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}'

Isibonelo:

Isibonelo 5: Awk command

Uhlu lwezithombe zesakhiwo sefayela ngosayizi

Thola Uhlu lwawo wonke amafolda asempandeni yohlelo lokusebenza kanye nemidwebo (imigoqo) nokumelwa kwamanani njengephesenti losayizi wawo ngaphakathi kwawo.

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"}'

Isibonelo:

Isibonelo 6: Awk command

Bhala uhlu olufingqiwe lwezinhlobo zamafayela ku-Directory

Khombisa uhlu lwezinhlobo zamafayela aqukethwe enkombeni kanye nenombolo yamafayela ehambisanayo.

find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g

Isibonelo:

Isibonelo 8: Awk command

Lezi zibonelo zemigqa yomyalo zisebenzisa umyalo we-awk ngiyethemba uzithola zilusizo kakhulu. Futhi zingasetshenziswa ukuthi zisetshenziswe ngqo kusuka kukhonsoli noma ngokungaqondile ngokuzifaka kuskripthi (umsebenzi ozenzakalelayo).

Kokuthunyelwe okulandelayo kuShell Scripting sizohlola eminye imiyalo.

Uma ufuna ukufunda okwengeziwe ngomyalo we- "grep" vakashela lesi sixhumanisi "U-DEBIAN Wiki”Futhi uma ufuna ukufunda kabanzi ngeShell Scripting ku-Blog yethu uqobo, ungabheka ezinye izincwadi zethu ezikhuluma ngale ndaba, ngokuchofoza lapha: Ukubhala ku-FromLinux