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 menjadi bidang atau kolom berdasarkan pemisah bidang field. 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 ' cetak $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 ' cetak $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 pelanggan.txt dengan 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.
Nama Email TeleponJonathon Bing - 1001 [dilindungi email] 01967456323
Michael Jackson - 2006 [dilindungi email] 01756235643
Janifer Lopez - 3029 [dilindungi email] 01822347865
John Abraham - 4235 j[dilindungi email] 01590078452
Mir Sabbir - 2756 [dilindungi email] 01189523978
Contoh 4: Cetak kolom pertama file tanpa menggunakan pemisah bidang
Jika tidak ada pemisah bidang yang digunakan dalam perintah 'awk', maka spasi digunakan sebagai pemisah bidang default. Perintah 'awk' berikut akan mencetak kolom pertama dengan menggunakan pemisah default.
$ pelanggan kucing.txt$ awk pelanggan 'print $1'.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.
$ pelanggan kucing.txt$ awk -F '\t' 'print $1' pelanggan.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.
$ awk -F '-' 'print $1' pelanggan.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 pelanggan.txt. Karena tidak ada pemisah bidang yang digunakan dalam perintah, spasi akan digunakan sebagai pemisah bidang.
$ pelanggan kucing.txt$ awk pelanggan 'print $NF'.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 pelanggan.txt. Di sini, tab (\t) digunakan sebagai pemisah bidang untuk membagi konten ke dalam kolom. Di sini, tab (\t) digunakan sebagai pemisah untuk output.
$ pelanggan kucing.txt$ awk -F "\t" 'print $1 "\t" $NF' pelanggan.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 cara yang berbeda 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.