Awk: Mempelajari Pembuatan Skrip Shell Menggunakan Perintah Terminal awk

Awk: Mempelajari Pembuatan Skrip Shell Menggunakan Perintah Terminal awk

Awk: Mempelajari Pembuatan Skrip Shell Menggunakan Perintah Terminal awk

Perintah "awk" dalam Sistem Operasi Bebas tipe GNU / Linux adalah perintah yang sangat kuat, yang membantu kita memiliki kontrol yang lebih besar saat memproses data dari perintah atau perintah perintah lain. Nama AWK berasal dari inisial nama belakang penulisnya: Alfred Aho, peter Weinberger, dan Brian Kernihan.

Perintah ini menyediakan bahasa skrip untuk pemrosesan teks yang dengannya kita dapat: Menentukan variabel, menggunakan string dan operator aritmatika, menggunakan kontrol aliran dan siklus, dan menghasilkan laporan yang diformat. Sebenarnya, Awk lebih dari sekedar perintah pemrosesan pola, ini adalah bahasa analisis semantik secara keseluruhan.

Pengantar perintah "awk"

AWK adalah salah satu utilitas konsol pertama yang sangat populer untuk mengelola (menangani / mengekstrak) data dengan memaksimalkan fungsionalitas pipeline UNIX. Bahasa yang disediakan oleh utilitas ini saat ini merupakan standar di hampir semua Sistem Operasi tipe UNIX modern, sedemikian rupa sehingga menjadi bagian dari Spesifikasi UNIX dasar, jadi biasanya sudah terinstal di sebagian besar Sistem Operasi secara default.

Sintaksnya yang paling umum adalah: file awk 'program' dan di mana 'program' dapat berupa: pattern {action} pattern {action}. Perintah membaca masukan file satu baris dalam satu waktu. Setiap baris dibandingkan dengan setiap pola secara berurutan; Untuk setiap pola yang cocok dengan baris, tindakan terkait dilakukan.

Contoh sederhana seperti:

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

ia meminta kolom pertama jika ia adalah root dari setiap baris di / etc / passwd dan mencetaknya dengan mempertimbangkan ":" dengan -F: sebagai pemisah kolom.

Contoh Pengantar Awk

Contoh praktis

Daftar perintah yang paling sering digunakan

Lihat daftar berdasarkan riwayat terminal Sistem yang diurutkan dari yang paling sering digunakan hingga yang paling sedikit.

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

Contoh:

Contoh 1: Perintah awk

Grafik (Tabel) dengan jumlah koneksi untuk setiap host

Buat grafik berbasis teks ASCII yang menunjukkan jumlah total koneksi 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

Daftar Direktori berdasarkan ukuran

Cetak di layar daftar direktori jalur saat ini dari yang terbesar ke terkecil yang 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

Tampilkan lalu lintas dari Antarmuka Jaringan

Lihat konsumsi data masuk dan keluar secara online dalam kilobyte (kb) untuk antarmuka jaringan 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 seri nomor fibonacci

Buat daftar nomor kuantitas X mengikuti pola fibonacci yang diberikan 2 nomor dasar yang akan dibangun.

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

Contoh:

Contoh 5: Perintah awk

Daftar grafis dari struktur file berdasarkan ukuran

Dapatkan Daftar semua folder di root sistem operasi bersama dengan grafik (bilah) dan representasi numerik sebagai persentase dari 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

Buat daftar ringkasan jenis file di Direktori

Menampilkan daftar jenis file yang ada dalam direktori bersama dengan jumlah file yang sesuai dengannya.

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

Contoh:

Contoh 8: Perintah awk

Contoh baris perintah ini menggunakan perintah awk Saya harap Anda merasa sangat berguna. Dan mereka berfungsi untuk digunakan secara langsung dari konsol atau tidak langsung dengan memasukkannya ke dalam skrip (tugas otomatis).

Di posting berikutnya di Shell Scripting kita akan menjelajahi perintah lain.

Jika Anda ingin mempelajari lebih lanjut tentang perintah "grep", kunjungi tautan ini "DEBIAN WikiDan jika Anda ingin mempelajari lebih lanjut tentang Shell Scripting di Blog kami sendiri, Anda dapat melihat publikasi kami yang lain tentang masalah ini, dengan mengklik di sini: Membuat skrip di FromLinux