
Perintah `awk` Linux adalah utilitas yang kuat untuk operasi yang berbeda pada file teks seperti mencari, mengganti, dan mencetak. Mudah digunakan dengan data tabular karena secara otomatis membagi setiap baris ke dalam bidang atau kolom berdasarkan pemisah bidang. Saat Anda bekerja dengan file teks yang berisi data tabular dan ingin mencetak data kolom tertentu, maka perintah `awk` adalah pilihan terbaik. Dalam tutorial ini, kami akan menunjukkan cara mencetak kolom pertama dan/atau kolom terakhir dari sebuah baris atau file teks.
Cetak kolom pertama dan/atau kolom terakhir dari output perintah
Banyak perintah Linux seperti perintah ‘ls’ menghasilkan keluaran tabel. Di sini, kami akan menunjukkan cara mencetak kolom pertama dan/atau kolom terakhir dari output perintah ‘ls -l’.
Contoh 1: Cetak kolom pertama dari output perintah
Perintah `awk` berikut akan mencetak kolom pertama dari output perintah ‘ls -l’.
$ ls -l
$ ls -l | awk '{ print $1 }'
Output berikut akan dihasilkan setelah menjalankan perintah di atas.
Contoh 2: Cetak kolom terakhir dari output perintah
Perintah `awk` berikut akan mencetak kolom terakhir dari output perintah ‘ls -l’.
$ ls -l
$ ls -l | awk '{ print $NF }'
Output berikut akan dihasilkan setelah menjalankan perintah di atas.
Contoh 3: Cetak kolom pertama dan terakhir dari output perintah
Perintah `awk` berikut akan mencetak kolom pertama dan terakhir dari output perintah ‘ls -l’.
$ ls -l
$ ls -l | awk '{ print $1, $NF }'
Output berikut akan dihasilkan setelah menjalankan perintah di atas.
Cetak kolom pertama dan/atau kolom terakhir dari file teks
Di sini, kami akan menunjukkan cara menggunakan perintah `awk` untuk mencetak kolom pertama dan/atau kolom terakhir dari file teks.
Buat file teks
Untuk mengikuti tutorial ini, buat file teks bernama customers.txtdengan konten berikut. File tersebut berisi tiga jenis data pelanggan: nama dengan id, email, dan nomor telepon. Karakter tab (t) digunakan untuk memisahkan nilai-nilai ini.
Name Email Phone
Jonathon Bing - 1001 [email protected] 01967456323
Micheal Jackson - 2006 [email protected] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 [email protected] 01590078452
Mir Sabbir - 2756 [email protected] 01189523978
Contoh 4: Cetak kolom pertama file tanpa menggunakan pemisah bidang
Jika tidak ada pemisah kolom yang digunakan dalam perintah `awk`, maka spasi digunakan sebagai pemisah kolom default. Perintah `awk` berikut akan mencetak kolom pertama dengan menggunakan pemisah default.
$ cat customers.txt
$ awk '{print $1}' customers.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Perhatikan bahwa output hanya menampilkan nama depan pelanggan karena spasi diterapkan sebagai pemisah bidang. Solusi untuk masalah ini ditunjukkan pada contoh berikut.
Contoh 5: Cetak kolom pertama file dengan pembatas
Di sini, t digunakan sebagai pemisah bidang untuk mencetak kolom pertama file. Opsi ‘-F’ digunakan untuk mengatur pemisah bidang.
$ cat customers.txt
$ awk -F 't' '{print $1}' customers.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Isi file dibagi menjadi tiga kolom berdasarkan t. Oleh karena itu, nama dan id pelanggan dicetak sebagai kolom pertama. Jika Anda ingin mencetak nama pelanggan tanpa id, maka lanjutkan ke contoh berikutnya.
Jika Anda ingin mencetak nama pelanggan tanpa id, maka Anda harus menggunakan ‘-‘ sebagai pemisah bidang. Perintah `awk` berikut akan mencetak nama pelanggan hanya sebagai kolom pertama.
$ cat customers.txt
$ awk -F '-' '{print $1}' customers.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Outputnya termasuk nama lengkap pelanggan tanpa id mereka.
Contoh 6: Cetak kolom terakhir dari sebuah file
Perintah `awk` berikut akan mencetak kolom terakhir dari customers.txt. Karena tidak ada pemisah bidang yang digunakan dalam perintah, spasi akan digunakan sebagai pemisah bidang.
$ cat customers.txt
$ awk '{print $NF}' customers.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Kolom terakhir berisi nomor telepon, seperti yang ditunjukkan pada output.
Contoh 7: Cetak kolom pertama dan terakhir dari sebuah file
Perintah `awk` berikut akan mencetak kolom pertama dan terakhir dari customers.txt. Di sini, tab (t) digunakan sebagai pemisah bidang untuk membagi konten ke dalam kolom. Di sini, tab (t) digunakan sebagai pemisah untuk output.
$ cat customers.txt
$ awk -F "t" '{print $1 "t" $NF}' customers.txt
Output berikut akan muncul setelah menjalankan perintah di atas. Konten dibagi menjadi tiga kolom oleh t; kolom pertama berisi nama dan id pelanggan dan kolom kedua berisi nomor telepon. Kolom pertama dan terakhir dicetak dengan menggunakan t sebagai pemisah.
Kesimpulan
Perintah `awk` dapat diterapkan dengan berbagai cara untuk mendapatkan kolom pertama dan/atau kolom terakhir dari output perintah apa pun atau dari data tabular. Penting untuk dicatat bahwa pemisah bidang diperlukan dalam perintah, dan jika tidak ada, maka ruang digunakan.