AWK - Sintaks Dasar
AWK mudah digunakan. Perintah AWK dapat kita berikan baik secara langsung dari command line maupun dalam bentuk file teks yang berisi perintah AWK.
Baris Perintah AWK
Kita dapat menentukan perintah AWK dalam tanda kutip tunggal pada baris perintah seperti yang ditunjukkan -
awk [options] file ...
Contoh
Pertimbangkan file teks marks.txt dengan konten berikut -
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
Mari kita tampilkan isi file secara lengkap menggunakan AWK sebagai berikut -
Example
[jerry]$ awk '{print}' marks.txt
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
File Program AWK
Kami dapat memberikan perintah AWK dalam file skrip seperti yang ditunjukkan -
awk [options] -f file ....
Pertama, buat file teks command.awk berisi perintah AWK seperti yang ditunjukkan di bawah ini -
{print}
Sekarang kita dapat menginstruksikan AWK untuk membaca perintah dari file teks dan melakukan tindakan. Di sini, kami mencapai hasil yang sama seperti yang ditunjukkan pada contoh di atas.
Example
[jerry]$ awk -f command.awk marks.txt
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
Opsi Standar AWK
AWK mendukung opsi standar berikut yang dapat disediakan dari baris perintah.
Opsi -v
Opsi ini memberikan nilai ke variabel. Ini memungkinkan penugasan sebelum eksekusi program. Contoh berikut menjelaskan penggunaan opsi -v.
Example
[jerry]$ awk -v name=Jerry 'BEGIN{printf "Name = %s\n", name}'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
Name = Jerry
Opsi --dump-variabel [= file]
Ini mencetak daftar variabel global yang diurutkan dan nilai akhirnya ke file. File defaultnya adalahawkvars.out.
Example
[jerry]$ awk --dump-variables ''
[jerry]$ cat awkvars.out
Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut -
Output
ARGC: 1
ARGIND: 0
ARGV: array, 1 elements
BINMODE: 0
CONVFMT: "%.6g"
ERRNO: ""
FIELDWIDTHS: ""
FILENAME: ""
FNR: 0
FPAT: "[^[:space:]]+"
FS: " "
IGNORECASE: 0
LINT: 0
NF: 0
NR: 0
OFMT: "%.6g"
OFS: " "
ORS: "\n"
RLENGTH: 0
RS: "\n"
RSTART: 0
RT: ""
SUBSEP: "\034"
TEXTDOMAIN: "messages"
Opsi --help
Opsi ini mencetak pesan bantuan pada keluaran standar.
Example
[jerry]$ awk --help
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
POSIX options : GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs
-v var=val --assign=var=val
Short options : GNU long options: (extensions)
-b --characters-as-bytes
-c --traditional
-C --copyright
-d[file] --dump-variables[=file]
-e 'program-text' --source='program-text'
-E file --exec=file
-g --gen-pot
-h --help
-L [fatal] --lint[=fatal]
-n --non-decimal-data
-N --use-lc-numeric
-O --optimize
-p[file] --profile[=file]
-P --posix
-r --re-interval
-S --sandbox
-t --lint-old
-V --version
Opsi --lint [= fatal]
Opsi ini memungkinkan pemeriksaan konstruksi non-portabel atau meragukan. Saat bertengkarfataldisediakan, ini memperlakukan pesan peringatan sebagai kesalahan. Contoh berikut menunjukkan ini -
Example
[jerry]$ awk --lint '' /bin/ls
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
awk: cmd. line:1: warning: empty program text on command line
awk: cmd. line:1: warning: source file does not end in newline
awk: warning: no program text at all!
Opsi --posix
Opsi ini mengaktifkan kompatibilitas POSIX yang ketat, di mana semua ekstensi umum dan khusus gawk dinonaktifkan.
Opsi --profile [= file]
Opsi ini menghasilkan versi program yang cukup dicetak dalam file. File defaultnya adalahawkprof.out. Contoh sederhana di bawah ini menggambarkan hal ini -
Example
[jerry]$ awk --profile 'BEGIN{printf"---|Header|--\n"} {print}
END{printf"---|Footer|---\n"}' marks.txt > /dev/null
[jerry]$ cat awkprof.out
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Output
# gawk profile, created Sun Oct 26 19:50:48 2014
# BEGIN block(s)
BEGIN {
printf "---|Header|--\n"
}
# Rule(s) {
print $0
}
# END block(s)
END {
printf "---|Footer|---\n"
}
Opsi --traditional
Opsi ini menonaktifkan semua ekstensi khusus gawk.
Opsi --version
Opsi ini menampilkan informasi versi program AWK.
Example
[jerry]$ awk --version
Ketika kode ini dijalankan, itu menghasilkan hasil sebagai berikut -
Output
GNU Awk 4.0.1
Copyright (C) 1989, 1991-2012 Free Software Foundation.