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.