Materi
awk membaca masukan per baris dan memecah setiap baris menjadi kolom: $1, $2, dan seterusnya, dengan $0 untuk seluruh baris. NF berisi jumlah kolom baris itu, jadi $NF adalah kolom terakhir, dan NR berisi nomor baris. Pemisah bawaannya spasi; -F, mengubahnya menjadi koma untuk berkas CSV. Program awk berbentuk pola { aksi }: aksi dijalankan untuk setiap baris yang cocok dengan pola.
awk -F, '{print $3, $4}' transaksi.csv
awk -F, '$2 == "Medan" && $4 >= 10' transaksi.csvPola bisa berupa perbandingan angka ($4 >= 10), kesamaan teks ($2 == "Medan"), regex (/Beras/), atau NR > 1 untuk melewati baris judul. Pola tanpa aksi mencetak barisnya; aksi tanpa pola dijalankan untuk semua baris.
Variabel awk tidak perlu dideklarasikan dan mulai dari nol, jadi s += $4 langsung menjumlah. Blok END dijalankan sesudah baris terakhir, tempat yang tepat untuk mencetak total; BEGIN dijalankan sebelum baris pertama. printf memberi format, misalnya printf "%s %d\n". Nilai dari shell dikirim dengan -v nama=nilai, bukan dengan menyisipkan $variabel ke dalam program.
awk -F, -v kota=Medan 'NR > 1 && $2 == kota {s += $4} END {print "Unit", kota, s}' transaksi.csvKesalahan umum: membungkus program dengan kutip ganda, sehingga shell mengganti $4 sebelum awk melihatnya; lupa -F, sehingga satu baris CSV dianggap satu kolom; dan membagi total dengan NR di END padahal NR ikut menghitung baris judul.