Perintah awk melakukan pencocokan pola pada file. Ini didasarkan pada bahasa pemrograman AWK. Kata kunci awk diikuti oleh pola, tindakan yang akan dilakukan, dan nama file. Tindakan yang akan dilakukan diberikan dalam kurung kurawal. Pola dan tindakan yang akan dilakukan harus ditentukan dalam tanda kutip tunggal. Jika pola tidak ditentukan, tindakan dilakukan pada semua data masukan; namun, jika tindakan tidak ditentukan, seluruh baris akan dicetak. Perintah awk dapat dijalankan dari baris perintah atau dari dalam file skrip awk.
Perintah awk dapat digunakan untuk memproses file teks dalam berbagai cara, seperti mengekstrak teks yang cocok dengan pola tertentu; menghapus teks yang cocok dengan pola tertentu; menambahkan teks yang cocok dengan pola tertentu; dan banyak lagi.
Sintaks
Sintaks dari perintah awk adalah:
# awk [options] ['patterns {actions}'] {file names}
Jika Anda menemukan kesalahan di bawah ini saat menjalankan perintah awk:
Anda dapat mencoba menginstal paket di bawah ini sesuai dengan pilihan distribusi Anda:
Distribusi OS | Perintah |
---|---|
OS X | brew install awk |
Debian | apt-get install gawk |
Ubuntu | apt-get install gawk |
Alpin | apk tambah gawk |
Linux Arch | pacman -S melongo |
Kali Linux | apt-get install gawk |
CentOS | yum install gawk |
Fedora | dnf install gawk |
Raspbian | apt-get install gawk |
Contoh Perintah awk
1. Cetak kolom kelima (alias bidang) dalam file yang dipisahkan spasi:
# awk '{print $5}' filename
2. Cetak kolom kedua dari baris yang berisi “foo” dalam file yang dipisahkan spasi:
# awk '/foo/ {print $2}' filename
3. Cetak kolom terakhir dari setiap baris dalam file, menggunakan koma (bukan spasi) sebagai pemisah bidang:
# awk -F ',' '{print $NF}' filename
4. Jumlahkan nilai di kolom pertama file dan cetak totalnya:
# awk '{s+=$1} END {print s}' filename
5. Cetak setiap baris ketiga mulai dari baris pertama:
# awk 'NR%3==1' filename
6. Cetak nilai yang berbeda berdasarkan kondisi:
# awk '{if ($1 == "foo") print "Exact match foo"; else if ($1 ~ "bar") print "Partial match bar"; else print "Baz"}' filename
7. Cetak semua baris di mana nilai kolom ke-10 sama dengan nilai yang ditentukan:
# awk '($10 == value)'
8. Cetak semua baris dengan nilai kolom ke-10 antara min dan max:
# awk '($10 >= min_value && $10 <= max_value)'