Materi
Toko Sinar Jaya punya tiga cabang yang mengirim data penjualan ke satu berkas. Kasirnya menulis nama cabang dengan huruf yang tidak seragam (medan, MEDAN, Medan) dan tanggal dalam bentuk hari/bulan/tahun. Manajer ingin berkas yang rapi, omzet per cabang, dan daftar transaksi yang diurutkan berdasarkan jumlah unit.
Empat latihan berikut membangunnya. Lulus misi ini bila minimal 80 persen latihannya benar.
Urutannya penting: bersihkan dulu, baru hitung. awk membandingkan teks persis, jadi $2 == "Medan" tidak cocok dengan baris medan atau MEDAN; total yang dihitung dari data mentah akan kurang tanpa pesan galat apa pun. sed dengan flag I menyeragamkan nama cabang, dan sed -E dengan tiga grup membalik tanggal menjadi tahun-bulan-hari, bentuk yang urut abjadnya sama dengan urut waktunya.
Omzet adalah jumlah unit dikali harga, dihitung per baris lalu dijumlahkan: s += $4 * $5. Nama cabang diterima skrip sebagai argumen dan diteruskan ke awk dengan -v, sehingga satu skrip melayani semua cabang. Untuk mengurutkan, sort -t, -k4 -nr membaca kolom keempat sebagai angka dari yang terbesar; baris judul dibuang dulu dengan sed '1d' supaya tidak ikut diurutkan.