catatanlepas.com

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color
Home Komputer Pemrograman Dasar-Dasar AWK

Dasar-Dasar AWK

Email Cetak PDF

I. Pendahuluan

Awk adalah bahasa pemrograman yang digunakan untuk melakukan manipulasi data dan membuat laporan. Nama awk diambil dari nama akhir pembuatnya yaitu Alfred Aho, Peter Weinberger, dan Brian Kerningham. Awk mempunyai beberapa versi yaitu awk versi pertama (awk), kemudian nawk atau new version of awk dan versi awk yang merupakan implementasi dari GNU Project yang disebut dengan gawk dengan standar POSIX 1003.2 untuk bahasa pemrograman dan utilitas, BWK awk, xgawk, mawk dan lain sebagainya. Pada beberapa sistem seperti linux, awk di-link-kan ke versi terbaru yang digunakan. Misalnya dalam distribusi Linux redhat, gawk merupakan link dari awk, sehingga keduanya sama.

Awk dapat digunakan baik dalam command line maupun dimasukkan dalam sebuah skrip dengan melakukan scan baris per baris seperti pada sed yang diperoleh dari standar input, file maupun output proses.

II. Struktur dasar Awk

Instruksi-instruksi awk terdiri atas pattern dan action atau gabungan keduanya. Sintaks yang digunakan sebagai berikut:
$ awk 'pattern' input
$ awk '{action}' input
$ awk 'pattern {action}' input
Dua pattern yang sering digunakan adalah BEGIN dan END
Agar lebih memahami tentang awk, maka buatlah file dengan nama coin lalu isi file tersebut dengan data-data di bawah ini:
 
 bronze      1         1986      USA                   American Eagle
 gold        1         1908      Austria-Hungary       Franz Josef 100 Korona
 silver      0.75      1981      USA                   ingot
 gold        1         1984      Switzerland           ingot
 gold        1         1979      RSA                   Krugerrand
 bronze      0.5       1981      RSA                   Krugerrand
 gold        0.1       1986      PRC                   Panda
 silver      1         1986      USA                   Liberty dollar
 gold        0.25      1986      USA                   Liberty 5-dollar piece
 silver      0.5       1986      USA                   Liberty 50-cent piece
 silver      1         1987      USA                   Constitution dollar
 gold        0.25      1987      USA                   Constitution 5-dollar piece
 bronze      1         1988      Canada                Maple Leaf

III. Record dan Field Dalam AWK

Dalam menangani input, awk tidak hanya melihatnya sebagai karakter string tetapi awk mempunyai format dan struktur tersendiri. Penanganan tersebut dilakukan berdasarkan record dan field

A. Record
Record dalam awk adalah setiap baris dari input, sehingga jika ditemui baris baru, akan dianggap sebagai record baru. Enter di dalam sebuah file dianggap sebagai pemisah antar
record. Untuk melihat jumlah record awk, awk juga menyediakan perintah NR (Number of Record). Contohnya adalah sebagai berikut:
 # awk '{print NR, $0}' coin


B. Field
Field merupakan bagian yang menyusun sebuah record. Jadi, bisa dikatakan bahwa record adalah setiap kata atau kolom pada baris record. Dalam sebuah record yang terdiri atas banyak field, field biasanya dibatasi oleh spasi atau tab. Field ditandai dengan tanda variabel $1-$n dimana $1 menunjukkan field pertama, dan seterusnya. awk menyediakan
instruksi untuk melihat jumlah field dalam record yaitu NF (Number of Field).
 # awk '{print NF, $0}' coin


Dari baris pertama dilihat bahwa ada 6 field, baris kedua ada 8 field, dan sebagainya.


IV. Contoh-Contoh AWK

Berikut adalah contoh-contoh dari awk dengan berbagai variasi:
a. Menampilkan seluruh bagian yang mempunyai item bronze saja


b. Menampilkan bagian item dan tahun saja untuk item silver


 
Seperti dilihat dicontoh diatas bahwa awk menampilkan data metal dan tahun saja dengan
menggunakan perintah print. Jadi awk membagi sebuah file berdasarkan spasi atau tab. Jika kita ingin menampilkan seluruh bagian dari file diatas maka ketikkan:
 # awk '{print $0}' coin


Untuk menampilkan seluruh deskripsi dari sebuah metal, maka ketikkan:
 # awk '{print $1,$5,$6,$7,$8}' coin


c. awk dapat menampilkan sebuah output hasil dari operasi logika (!,||,&&)


d. awk dapat menampilkan sebuah output dari hasil ekspresi kondisi (if)


e. awk dapat menampilkan sebuah output dari hasil operasi relasi (<,>,<=.>=,==,!=)


f. awk dapat menampilkan sebuah output dari hasil aritmatika


g. seperti halnya sed, awk juga dapat dituliskan dalam sebuah skrip awk yang berisi instruksi-instruksi awk tanpa awk itu sendiri. Buatlah sebuah file yang bernama summary dan isi filenya sebagai berikut:
 
# This is an awk program that summarizes a coin collection.
   #
   /gold/    { num_gold++; wt_gold += $2 }      # Get weight of gold.
   /silver/  { num_silver++; wt_silver += $2 }  # Get weight of silver.
   /bronze/  { num_bronze++; wt_silver += $2 }  # Get weight of bronze
   END { val_gold = 485 * wt_gold;              # Compute value of gold.
         val_silver = 16 * wt_silver;           # Compute value of silver.
         total = val_gold + val_silver;
         print "Summary data for coin collection:";  # Print results.
         printf ("\n");
         printf ("   Gold pieces:                   %2d\n", num_gold);
         printf ("   Weight of gold pieces:         %5.2f\n", wt_gold);
         printf ("   Value of gold pieces:        %7.2f\n",val_gold);
         printf ("\n");
         printf ("   Silver pieces:                 %2d\n", num_silver);
         printf ("   Weight of silver pieces:       %5.2f\n", wt_silver);
         printf ("   Value of silver pieces:      %7.2f\n",val_silver);
         printf ("\n");
         printf ("   Bronze pieces:                   %2d\n", num_gold);
         printf ("   Weight of bronze pieces:         %5.2f\n", wt_gold);
         printf ("   Value of bronze pieces:        %7.2f\n",val_gold);
         printf ("\n");
         printf ("   Total number of pieces:        %2d\n", NR);
         printf ("   Value of collection:         %7.2f\n", total); }
Untuk melihat hasilnya, ketikkan dengan format sebagai berikut:
# awk -f nama_file_skrip input_file
Dalam kasus kita:
# awk -f summary coin

V. Ekspresi Reguler

Sama seperti sed, awk juga dapat menggunakan ekspresi reguler untuk menampilkan sebuah output.
Sintaks Keterangan
/regexp/ Mencocokan inputan dengan regexp yang diberikan
expression ~ /regexp/ Mencocokan apakah string expression berisi substring dari regexp
expression !~ /regexp/ Mencocokan apakah string expression tidak berisi substring dari regexp

Berikut adalah metakarakter ekspresi reguler awk:

Metakarakter Penjelasan Contoh
^ Baris yang diawali oleh kata setelah tanda ini ^nama
$ Baris yang diakhiri oleh kata sebelum tanda ini nama$
. Digunakan untuk mewakili tepat satu karakter n..a
* Dapat mewakili satu atau banyak karakter na*
[] Untuk mengelompokkan karakter yang bisa diganti misalnya mencari Nama atau nama [Nn]ama
[^] Mencari kata yang tidak mengandung karakter didalamnya [^A-MO-Z]ama

Contoh-contoh awk yang menggunakan ekspresi reguler adalah sebagai berikut:
a. Menampilkan output yang hanya menampilkan item yang berawalan sil


 b. Menampilkan output selain yang berakhiran old


c. Menampilkan output selain dari negara USA


VI. Mengambil dari Kalimat

Contoh-contoh di atas sudah dapat dilihat bahwa kita dapat mengambil sebuah kata dari sebuah paragraf yang terdiri dari beberapa kata. Sekarang bagaimana caranya agar kita mengambil sebuah karakter (huruf atau angka) dari sebuah kata? Untuk melakukan hal tersebut, kita harus mengikuti format:
substr ($s,a,b)
dimana $s adalah string, a adalah dimulai dari posisi keberapa, dan b adalah diakhiri sampai posisi keberapa. Misalnya kita mempunyai sebuah kalimat "Aku Cinta Negara Indonesia" yang berada di file lat1. Kita ingin hanya mengambil kata "Indon" saja dari kata Indonesia, maka kita menggunakan perintah:
# awk '{print substr($4,1,5)}' lat1
Maka kata Indon akan tercetak di layar kita.

Referensi:

Bash Scripting Untuk Administrasi Sistem Linux, Rofiq Yuliardi
http://en.wikipedia.org
http://osr507doc.sco.com
http://www.vectorsite.net
http://unix-simple.blogspot.com/

5 Syaban 1430 H
28 Juli 2009 M

+ 1
+ 1
Comments
Add New Search
tris  - pemrograman AWK   |125.167.177.xxx |2010-04-21 11:46:18
selamat siang mas
mas mau tanya...
gimana cara buat pemrograman dengan AWK untuk mencari kata-kata pada sebuah situs?
tolong kirim ke email saya ya!
trima kasi banyak
catatan   |SAdministrator |2010-04-21 12:50:47
Halo mas Tris,
Maaf mas saya tidak mengetahui email mas tris itu apa? Jadi saya menjawab pertanyaan mas di sini saja ya .

Sepanjang yang saya tahu, AWK digunakan untuk mencari kata-kata dalam sebuah file dan bukan pada sebuah situs.

Untuk mencari kata-kata dalam sebuah situs, bisa mempergunakan tools Find di browser mas atau di bagian Search yang sudah disediakan di Situs tersebut.

Semoga membantu
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Terakhir Diperbaharui ( Senin, 18 Januari 2010 07:31 )  

Tanggal dan Jam


Ulti Clocks content

Browse this website in:


Mutiara Hari Ini

Tidak akan diterima shalat yang dilakukan tanpa bersuci, dan tidak akan diterima sedekah yang berasal dari harta curian. (HR. Tirmidzi)

Poling

Apakah artikel-artikel di situs ini bermanfaat untuk anda?

(283 votes)

7.8%
92.2%

Waktu Shalat