Soal 1Apa yang dikeluarkan oleh awk '{print $1}' f?
awk — Ekstraksi Field
Praktik awk: '{print $1}' mengambil satu kolom, $NF mengambil kolom terakhir, -F',' mengubah pemisah menjadi koma, NR dan NF, serta /error/{print $2} hanya memproses baris yang cocok — divisualisasikan dan bisa langsung dicoba di terminal browser.
Mengambil Kolom — $1 / $NF / -F
awk adalah perintah yang memisahkan setiap baris menjadi kolom (field) berdasarkan spasi dan memungkinkan kamu memprosesnya per kolom. Menulis awk '{print $1}' akan mengambil dan mencetak hanya kolom pertama dari setiap baris. Di dalam {} kamu menulis aksi yang dijalankan pada setiap baris (di sini, print). $1 adalah kolom pertama, $2 adalah kolom kedua, dan $0 mengacu pada seluruh baris.
$NF adalah cara khusus untuk mengacu pada kolom terakhir. NF adalah variabel yang menyimpan jumlah field dalam satu baris, sehingga $NF memberi kamu kolom terakhir dari baris tersebut. Bahkan ketika jumlah kolom berbeda dari baris ke baris, kamu selalu mendapatkan yang terakhir. Ketika pemisah bukan spasi, tentukan dengan -F, seperti -F','. Lebih aman membungkus pemisah dalam tanda kutip (-F',').
printf 'alice 30 tokyo\nbob 25 osaka\n' > users.txt # buat materi
awk '{print $1}' users.txt # kolom 1: alice dan bob
awk '{print $2}' users.txt # kolom 2: 30 dan 25
awk '{print $NF}' users.txt # kolom terakhir: tokyo dan osaka
printf 'alice,30\nbob,25\n' > csv.txt # materi dengan pemisah koma
awk -F',' '{print $1}' csv.txt # pemisah koma, kolom 1
$1 adalah kolom pertama, dan $NF menunjuk ke kolom terakhir baris tersebut.| Bentuk | Arti | Contoh |
|---|---|---|
$1 | Ambil kolom 1 | awk '{print $1}' users.txt |
$2 | Ambil kolom 2 | awk '{print $2}' users.txt |
$NF | Ambil kolom terakhir | awk '{print $NF}' users.txt |
$0 | Ambil seluruh baris | awk '{print $0}' users.txt |
-F',' | Ubah pemisah menjadi koma | awk -F',' '{print $1}' csv.txt |
NR | Nomor baris saat ini | awk '{print NR, $0}' nf.txt |
NF | Jumlah field dalam baris | awk '{print NF}' nf.txt |
/pat/{print $1} | Cetak kolom 1 dari baris yang cocok dengan pat | awk '/error/{print $1}' log.txt |
Nomor Baris dan Jumlah Field — NR / NF
NR adalah variabel bawaan yang menyimpan nomor baris yang sedang diproses, dan NF menyimpan jumlah field dari baris tersebut. Menulis awk '{print NR, $0}' mencetak setiap baris lengkap dengan nomor baris di depannya. Dengan awk '{print NF}' kamu bisa melihat berapa kolom yang terbentuk dari setiap baris.
printf 'red\ngreen blue\n' > nf.txt # buat materi
awk '{print NR, $0}' nf.txt # 1 red / 2 green blue
awk '{print NF}' nf.txt # baris 1 punya 1 kolom, baris 2 punya 2
Memproses Hanya Baris yang Cocok — /pat/{print ...}
Ketika kamu menulis pola sebelum program, awk hanya menerapkan program tersebut pada baris yang cocok. awk '/error/{print $1}' mencetak kolom 1 hanya untuk baris yang mengandung error. Di mana grep menampilkan seluruh baris, awk bisa mengambil hanya kolom yang kamu butuhkan dari baris yang cocok.
printf 'error disk\ninfo start\nerror cpu\n' > log.txt # buat materi
awk '/error/{print $2}' log.txt # kolom 2 dari baris error: disk dan cpu
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Opsi apa yang kamu tambahkan agar awk menggunakan koma sebagai pemisah?
Soal 3Baris mana yang diproses oleh awk '/error/{print $1}' f?