Perintah awk adalah metode yang kuat untuk memproses atau menganalisis file teks - khususnya, file data yang diatur oleh garis (baris) dan kolom.
Sederhana awk perintah dapat dijalankan dari baris perintah. Tugas yang lebih kompleks harus ditulis sebagai program awk (yang disebut skrip awk) ke file.
Format dasar perintah awk terlihat seperti ini:
awk 'pattern {action}' input-file> output-file
Ini berarti: ambil setiap baris file input; jika garis berisi pola, berlaku tindakan ke garis dan tulis garis yang dihasilkan ke file output. Jika pola tersebut dihilangkan, tindakan diterapkan ke semua lini. Sebagai contoh: awk '{print $ 5}' table1.txt> output1.txt Pernyataan ini mengambil elemen kolom ke-5 dari setiap baris dan menulisnya sebagai garis dalam file output "output.txt". Variabel '$ 4' mengacu pada kolom kedua. Demikian pula Anda dapat mengakses kolom pertama, kedua, dan ketiga, dengan $ 1, $ 2, $ 3, dll. Secara default, kolom diasumsikan dipisahkan oleh spasi atau tab (disebut spasi putih). Jadi, jika file input "table1.txt" berisi baris-baris berikut: 1, Justin Timberlake, Judul 545, Harga $ 7,302, Taylor Swift, Judul 723, Harga $ 7,903, Mick Jagger, Judul 610, Harga $ 7,904, Lady Gaga, Judul 118, Harga $ 7,305, Johnny Cash, Judul 482, Harga $ 6,506, Elvis Presley, Judul 335, Harga $ 7,307, John Lennon, Judul 271, Harga $ 7,908, Michael Jackson, Judul 373, Harga $ 5,50 Maka perintah akan menulis baris berikut ke file output "output1.txt": 545,723,610,118,482,335,271,373, Jika pemisah kolom adalah sesuatu selain ruang atau tab, seperti koma, Anda dapat menentukannya dalam pernyataan awk sebagai berikut: awk -F, '{print $ 3}' table1.txt> output1.txt Ini akan memilih elemen dari kolom 3 dari setiap baris jika kolom dianggap dipisahkan oleh koma. Oleh karena itu, output, dalam hal ini, adalah: Judul 545 Judul 723 Judul 610 Judul 118 Judul 482 Judul 335 Judul 271 Judul 373 Daftar pernyataan di dalam kurung kurawal ('{', '}') disebut blok. Jika Anda meletakkan ekspresi kondisional di depan blok, pernyataan di dalam blok akan dijalankan hanya jika kondisinya benar. awk '$ 7 == " $ 7.30" {print $ 3}' table1.txt Dalam kasus ini, kondisinya $ 7 == " $ 7.30", yang berarti bahwa elemen di kolom 7 sama dengan $ 7.30. Tanda garis miring terbalik di depan tanda dolar digunakan untuk mencegah sistem menafsirkan $ 7 sebagai variabel dan sebaliknya mengambil tanda dolar secara harfiah. Jadi pernyataan awk ini mencetak elemen di kolom ke-3 dari setiap baris yang memiliki "$ 7,30" di kolom 7. Anda juga dapat menggunakan ekspresi reguler sebagai kondisinya. Sebagai contoh: awk '/ 30 / {print $ 3}' table1.txt String antara dua garis miring ('/') adalah ekspresi reguler. Dalam hal ini, itu hanya string "30." Ini berarti jika sebuah baris berisi string "30", sistem akan mencetak elemen di kolom ke-3 dari baris tersebut. Output dalam contoh di atas adalah: Timberlake, Gaga, Presley, Jika elemen tabel adalah nomor awk dapat menjalankan perhitungan pada mereka seperti pada contoh ini: awk '{print ($ 2 * $ 3) + $ 7}' Selain variabel yang mengakses elemen baris saat ini ($ 1, $ 2, dll) ada variabel $ 0 yang mengacu pada baris lengkap (garis), dan variabel NF yang memegang ke jumlah bidang. Anda juga dapat menentukan variabel baru seperti pada contoh ini: awk '{jumlah = 0; untuk (col = 1; col <= NF; col ++) jumlah + = $ col; jumlah cetak; } ' Ini menghitung dan mencetak jumlah semua elemen dari setiap baris. Pernyataan awk sering dikombinasikan dengan perintah sed.