Awk: Belajar Skrip Shell Menggunakan Perintah Terminal awk

Awk: Belajar Skrip Shell Menggunakan Perintah Terminal awk

Awk: Belajar Skrip Shell Menggunakan Perintah Terminal awk

Perintah "awk" dalam Sistem Operasi Percuma jenis GNU / Linux adalah perintah yang sangat kuat, yang membantu kita memiliki kawalan yang lebih besar ketika memproses data dari perintah lain atau perintah perintah. Nama AWK berasal dari inisial nama keluarga pengarangnya: Alfred Aho, peter Weinberger, dan Brian Kenighan.

Perintah ini menyediakan bahasa skrip untuk pemprosesan teks yang dapat kita gunakan: Menentukan pemboleh ubah, menggunakan rentetan dan operator aritmetik, menggunakan kawalan aliran dan kitaran, dan menghasilkan laporan berformat. Sebenarnya, Awk lebih dari sekadar perintah pemprosesan corak, itu adalah keseluruhan bahasa analisis semantik.

Pengenalan kepada arahan "awk"

AWK adalah salah satu utiliti konsol pertama yang sangat popular untuk mengurus (mengendalikan / mengekstrak) data dengan memaksimumkan fungsi saluran paip UNIX. Bahasa yang disediakan oleh utiliti ini pada masa ini merupakan standard dalam hampir semua Sistem Operasi jenis UNIX moden, sehingga merupakan sebahagian daripada Spesifikasi UNIX asas, jadi biasanya sudah terpasang di kebanyakannya secara lalai.

Sintaksnya yang paling biasa adalah: awk 'program' fail dan di mana 'program' boleh: pattern {action} pattern {action}. Perintah membaca input fail satu baris pada satu masa. Setiap baris dibandingkan dengan setiap corak mengikut urutan; Untuk setiap corak yang sesuai dengan baris, tindakan yang sesuai dilakukan.

Contoh mudah seperti:

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

ia meminta bidang pertama jika merupakan akar bagi setiap baris di / etc / passwd dan mencetaknya dengan mempertimbangkan ":" dengan -F: sebagai pemisah medan.

Contoh Pengenalan Awk

Contoh praktikal

Senarai arahan yang paling banyak digunakan

Lihat senarai berdasarkan sejarah terminal Sistem yang dipesan dari yang paling kerap digunakan hingga paling sedikit.

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

Contoh:

Contoh 1: Perintah awk

Grafik (Jadual) dengan bilangan sambungan untuk setiap hos

Buat grafik berasaskan teks ASCII yang menunjukkan jumlah sambungan dari host ke setiap alamat 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 "" }'

Contoh:

Contoh 2: Perintah awk

Senarai Direktori mengikut ukuran

Cetak pada skrin senarai direktori jalan semasa dari yang terbesar hingga yang paling kecil menunjukkan label yang sesuai dengan ukurannya menggunakan huruf: g, m, dan 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}'

Contoh:

Contoh 3: Perintah awk

Tunjukkan lalu lintas dari Antaramuka Rangkaian

Lihat penggunaan data masuk dan keluar dalam talian dalam kilobyte (kb) untuk antara muka rangkaian yang ditentukan.

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

Contoh:

Dapatkan siri nombor fibonacci

Buat senarai nombor kuantiti X mengikut corak fibonacci yang diberi 2 nombor asas yang akan dibina.

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

Contoh:

Contoh 5: Perintah awk

Senarai grafik struktur fail mengikut ukuran

Dapatkan Senarai semua folder di akar sistem operasi berserta grafik (bar) dan perwakilan berangka sebagai peratusan ukurannya di dalamnya.

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

Contoh:

Contoh 6: Perintah awk

Senaraikan ringkasan jenis fail dalam Direktori

Tunjukkan senarai jenis fail yang terdapat dalam direktori bersama dengan jumlah fail yang sesuai dengannya.

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

Contoh:

Contoh 8: Perintah awk

Contoh baris arahan ini menggunakan perintah awk Saya harap anda menganggapnya sangat berguna. Dan ia berfungsi untuk digunakan secara langsung dari konsol atau secara tidak langsung dengan memasukkannya ke dalam skrip (tugas automatik).

Pada posting seterusnya pada Shell Scripting kita akan meneroka perintah lain.

Sekiranya anda ingin mengetahui lebih lanjut mengenai arahan "grep", lawati pautan ini "DEBIANWiki"Dan jika anda ingin mempelajari lebih lanjut mengenai Shell Scripting di Blog kami sendiri, anda boleh melihat penerbitan kami yang lain mengenai perkara ini, dengan mengklik di sini: Skrip DesdeLinux


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   tuxito kata

    Saya hanya memahami contoh pertama, tidak lain else