AWK: Perbezaan antara semakan

Daripada Wikipedia, ensiklopedia bebas.
Kandungan dihapus Kandungan ditambah
Yosri (bincang | sumb.)
Laman baru: '''AWK''' adalah bahasa pengaturcaraan umum yang direka bagi memproses data berasaskan teks, samaada dalam file atau aliran data. Nama AWK merupakan sringkasan nama penciptanya — [[Alf...
(Tiada perbezaan)

Semakan pada 05:30, 10 Mei 2007

AWK adalah bahasa pengaturcaraan umum yang direka bagi memproses data berasaskan teks, samaada dalam file atau aliran data. Nama AWK merupakan sringkasan nama penciptanya — Alfred Aho, Peter Weinberger, dan Brian Kernighan; bagaimanapun, bukanlah kebiasaan menyebut setiap huruf secara berasingan tetapi untuk mmenyebut ejaannya sama seperti bunyi burung, auk (yang menjadi lambang bahasa tersebut seperti sampul buku The AWK Programming Language ). awk, apabila ditulis dalam huruf kecil, merujuk kepada Unix atau perisian Plan 9 yang melaksanakan aturcara yang ditulis dalam bahasa pengaturcaraan AWK. AWK adalah contoh bahasa pengaturcaraan yang menggunakan jenis data 'String, array berkait (iaitu array diindex oleh string utama (key strings)) dan gambaran biasa (regular expression) secara meluas. Kuasa, bentuk, dan kelemahan aturcara AWK dan skrip sed mendorong Larry Wall untuk mencipta Perl. Disebabkan banyak notasi, kesemua bahasa sebegini sering kali digunakan bagi menulis aturcara satu baris one-liner program. AWK is one of the early tools to appear in Version 7 Unix and gained popularity as a way to add computational features to a Unix pipeline. Satu versi bahasa AWK adalah ciri piawaian bagi kesemua sistem pengoperasian moden seperti unix yang terdapat hari ini. AWK disebut dalam Spesifikasi UNIX Tunggal - (Single UNIX Specification) sebagai salah satu utiliti wajib bagi sistem p[engoperasian Unix. Selain kerangka Bourne, AWK adalah bahasa skrip lain yang terdapat di persekitaran Unix piwaian. Perlaksanaan AWK wujud sebagai aturcara boleh pasang bagi hampir keseluruhan sistem pengoperasi lain.

Padanan julat baris input

$ yes Wikipedia | cat -n | awk 'NR % 4 == 1, NR % 4 == 3' | head -7
     1  Wikipedia
     2  Wikipedia
     3  Wikipedia
     5  Wikipedia
     6  Wikipedia
     7  Wikipedia
     9  Wikipedia
$

The yes and cat commands generate a series of numbered lines as example input. NR is the number of records, typically lines of input, AWK has so far read, i.e. the current line number, starting at 1 for the first line of input. % is the modulo operator. NR % 4 == 1 is true for the first, fifth, ninth, etc., lines of input. Likewise, NR % 4 == 3 is true for the third, seventh, eleventh, etc., lines of input. The range pattern is false until the first part matches, on line 1, and then remains true up to and including when the second part matches, on line 3. It then stays false until the first part matches again on line 5.

The first part of a range pattern being constantly true, e.g. 1, can be used to start the range at the beginning of input. Similarly, if the second part is constantly false, e.g. 0, the range continues until the end of input.

/^--cut here--$/, 0

Prints lines of input from the first line matching the regular expression ^--cut here--$ to the end.

Pengiraan frekuensi perkataan

Kekerapan kata, (menggunakan jujukan berkait)

BEGIN { FS="[^a-zA-Z]+"}

{ for (i=1; i<=NF; i++)
     words[tolower($i)]++
}

END { for (i in words)
    print i, words[i]
}

Skrip AWK lengkap

Sebagaimana kebanyakan bahasa pengaturcaraan lain, skrip AWK lengkap (self-contained ) boleh dihasilkan dengan menggunakan sinteks yang dikenali sebagai "shebang".

Sebagai contoh, perintah UNIX dikenali sebagai hello.awk yang memaparkan "Hello, world!" boleh dihasilkan dengan mencipta fail bernama hello.awk mengandungi baris berikut:

#!/usr/bin/awk -f
BEGIN { print "Hello, world!"; exit }


Pautan luar