Sebagai seorang beginner di dunia per-’shell script’-an, command ‘awk’ merupakan salah satu PR buat saya untuk menguak rahasianya. Karena apa? ‘awk’ benar-benar mampu mempermudah pekerjaan saya ![]()
OK, mari kita mulai saja..
Apa siy sebenarnya ‘awk’ itu? adalah sebuah utility filter untuk memanipulasi file teks. AWK sendiri merupakan singkatan dari nama-nama belakang penciptanya, yaitu Alfred V. Aho, Peter J. Weinberger dan Brian W. Kernighan. Hmm… sepertinya cukup itu saja pendahuluannya, kita langsung masuk ke cara penggunaannya.
bash-3.00$ date
Mon Apr 14 23:53:40 WIT 2008
bash-3.00$ date | awk ‘{print $4}’
23:54:12
bash-3.00$ date | awk ‘{print $3,$2}’
14 Apr
bash-3.00$ date | awk ‘{print $3$2}’
14Apr
bash-3.00$ date | awk ‘{print “DATE: ” $3,$2, “TIME :” $4}’
DATE: 14 Apr TIME :23:55:59
bash-3.00$ date | awk ‘{print $0}’
Mon Apr 14 23:56:15 WIT 2008
Dari contoh diatas, dapat disimpulkan bahwa AWK secara default memisahkan tiap field dari sebuah record dengan delimiter spasi/tab. Field pertama merupakan $1 dan field terakhir adalah $n. Sedangkan $0 dapat diartikan merupakan keseluruhan sebuah record. Owh ya, kita bisa menggunakan perintah {print} untuk menampilkan suatu field atau record. Dalam command print sendiri kita dapat menggunakan beberapa variasi seperti contoh di atas, sila dicobain sendiri deh
Kita juga dapat mengubah separator antar field sesuai keinginan, caranya dengan menggunakan option -F dan menentukan karakter apa yang akan kita gunakan sebagai separatornya. Sebagai contoh kita gunakan file /etc/passwd yang berisi data all user dalam system. Jika kita ingin menampilkan home direktori dari semua user dalam system, bisa kita gunakan perintah sbb :
awk < /etc/passwd -F: ‘{print $6}’
Maksud dari perintah tsb adalah menampilkan field/column ke 6 (’{print $6}’) dari sebuah file (etc/passwd) yang tiap fieldnya dipisahkan oleh karakter titik-dua (-F:).
Selain itu, ‘awk’ juga dapat digunakan dalam operasi aritmatika, seperti penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), sisa pembagian/modulus (%), dsb. Untuk penggunaannya, bisa dilihat pada contoh berikut :
bash-3.00$ echo 2 3 | awk ‘{print $1 + $2}’
5
bash-3.00$ echo 2 3 | awk ‘{print $1 - $2}’
-1
bash-3.00$ echo 2 3 | awk ‘{print $1 * $2}’
6
bash-3.00$ echo 2 3 | awk ‘{print $1 / $2}’
0.666667
bash-3.00$ echo 5 3 | awk ‘{print $1 % $2}’
2
Semua fungsi-fungsi yang dimiliki oleh ‘awk’ juga dapat digunakan secara bersama-sama. Misalnya, saya ingin menjumlahkan size dari beberapa file yang karakter awal nama filenya adalah abe, maka cukup dengan mengetikkan :
bash-3.00$ ls -l abe* | awk ‘{sum=sum + $5} END {print sum}’
197904
Pada command ls -l field yang menunjukkan size suatu file adalah pada field ke-5 ($5), ls -l abe* digunakan untuk me-list file yang berawalan abe. Sedangkan untuk command ‘awk’ digunakan variabel sum untuk menyimpan hasil penjumlahan dari $5 pada setiap line/file name, pada akhir baris dalam list file nilai dari variabel sum ditampilkan.
Sekian duluw materi ‘awk’ untuk kali ini. Sebenarnya masih banyak sekali rahasia dari ‘awk’, mungkin akan saya lanjutkan di postingan berikutnya. Ciao…
Popularity: 38% [?]
- SHELILA -


