Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Bash Lanjutan

Pelajaran 7 dari 15

Mengolah teks: ekspansi parameter, sed, dan awk

awk: kolom, saringan, dan jumlah

Setelah pelajaran ini kamu bisa mencetak kolom tertentu, menyaring baris dengan pola perbandingan, dan menjumlahkan kolom dengan awk.

±13 menitDiperiksa 5 Okt 2026

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.csv

Pola 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.csv

Kesalahan 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.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Perintah berikut dimaksudkan untuk menghitung rata-rata unit per transaksi di transaksi.csv (satu baris judul, enam baris data). Hasilnya lebih kecil dari rata-rata sebenarnya. Mengapa?

awk -F, '{s += $4} END {print s / NR}' transaksi.csv
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi