awk

Cara Membagi File String dengan Awk

Cara Membagi File String dengan Awk
Perintah awk Linux (disingkat dari nama pengembang; Aho, Weinberger, dan Kernighan) adalah cara yang bagus untuk memproses dan menganalisis file string. Agar file menjadi lebih informatif, mereka harus diatur dalam bentuk baris dan kolom. Kemudian, Anda dapat menggunakan awk pada file-file ini untuk:

Pada artikel ini, kami akan menjelaskan penggunaan dasar dari perintah awk dan bagaimana itu dapat digunakan untuk membagi file string. Kami telah melakukan contoh dari artikel ini pada sistem Debian 10  Buster tetapi dapat dengan mudah direplikasi di sebagian besar distro Linux.

File sampel yang akan kita gunakan

Contoh file string yang akan kita gunakan untuk mendemonstrasikan penggunaan perintah awk adalah sebagai berikut:

Inilah yang ditunjukkan oleh setiap kolom dari file sampel:

Contoh 1: Gunakan Awk untuk mencetak semua baris file

Mencetak setiap baris dari file yang ditentukan adalah perilaku default dari perintah awk. Dalam sintaks perintah awk berikut, kami tidak menentukan pola apa pun yang harus dicetak awk, sehingga perintah tersebut seharusnya menerapkan tindakan "cetak" ke semua baris file.

Sintaksis:

$ awk 'print' nama file.txt

Contoh:

Dalam contoh ini, saya memberi tahu perintah awk untuk mencetak konten file sampel saya, baris demi baris.

$ awk 'print' sample_file.txt

Contoh 2:  Gunakan awk untuk mencetak hanya garis yang cocok dengan pola tertentu

Dengan awk, Anda dapat menentukan pola dan perintah hanya akan mencetak baris yang cocok dengan pola itu.

Sintaksis:

$ awk '/pattern_to_be_matched/ print' nama file.txt

Contoh:

Dari file sampel, jika saya ingin mencetak hanya baris yang berisi variabel 'B', saya dapat menggunakan perintah berikut:

$ awk '/B/ print' sample_file.txt

Untuk membuat contoh lebih bermakna, izinkan saya mencetak hanya informasi tentang karyawan yang 'profesor'.

$ awk '/professor/ print' sample_file.txt

Perintah hanya mencetak baris/entri yang berisi string "professor" sehingga kami memiliki lebih banyak informasi berharga yang berasal dari data.

Contoh 3. Gunakan awk untuk membagi file sehingga hanya bidang/kolom tertentu yang dicetak

Alih-alih mencetak seluruh file, Anda dapat membuat awk untuk mencetak hanya kolom tertentu dari file. Awk memperlakukan semua kata, dipisahkan oleh spasi, dalam satu baris sebagai catatan kolom secara default. Ini menyimpan catatan dalam variabel $N. Dimana $1 mewakili kata pertama, $2 menyimpan kata kedua, $3 mewakili kata keempat, dan seterusnya. $0 menyimpan seluruh baris sehingga baris siapa dicetak, seperti yang dijelaskan pada contoh 1.

Sintaksis:

$ awk 'cetak $N,… .' nama file.txt

Contoh:

Perintah berikut hanya akan mencetak kolom pertama (nama) dan kolom kedua (subjek) dari file sampel saya:

$ awk 'print $1, $2' sample_file.txt

Contoh 4: Gunakan Awk untuk menghitung dan mencetak jumlah baris di mana suatu pola cocok

Anda dapat memberi tahu awk untuk menghitung jumlah baris di mana pola tertentu cocok dan kemudian menampilkan 'hitungan' itu.

Sintaksis:

$ awk '/pattern_to_be_matched/++cnt END print "Count = ", cnt'
nama file.txt

Contoh:

Dalam contoh ini, saya ingin menghitung jumlah orang yang mengajar mata pelajaran "bahasa Inggris". Oleh karena itu saya akan memberi tahu perintah awk untuk mencocokkan pola "bahasa inggris" dan mencetak jumlah baris di mana pola ini dicocokkan.

$ awk '/english/++cnt END print "Count = ", cnt' sample_file.txt

Hitungan di sini menunjukkan bahwa 2 orang mengajar bahasa Inggris dari catatan file sampel sample.

Contoh 5: Gunakan awk untuk mencetak hanya baris dengan lebih dari jumlah karakter tertentu

Untuk tugas ini, kita akan menggunakan fungsi awk bawaan yang disebut "panjang". Fungsi ini mengembalikan panjang string input. Jadi, jika kita ingin awk mencetak hanya baris dengan lebih dari, atau bahkan kurang dari, jumlah karakter, kita dapat menggunakan fungsi panjang dengan cara berikut:

Untuk mencetak baris dengan karakter lebih besar dari angka:

$ awk 'length($0) > n' nama file.txt

Untuk mencetak baris dengan karakter kurang dari angka:

$ awk 'panjang($0) < n' filename.txt

Di mana n adalah jumlah karakter yang ingin Anda tentukan untuk sebuah baris.

Contoh:

Perintah berikut hanya akan mencetak baris dari file sampel saya yang memiliki karakter lebih dari 30:

$ awk 'length($0) > 30' sample_file.txt

Contoh 6: Gunakan awk untuk menyimpan output perintah ke file lain

Dengan menggunakan operator pengalihan '>', Anda dapat menggunakan perintah awk untuk mencetak outputnya ke file lain another. Ini adalah cara Anda dapat menggunakannya:

$ awk 'criteria_to_print" nama file.txt > file keluaran.txt

Contoh:

Dalam contoh ini, saya akan menggunakan operator redirection dengan perintah awk saya untuk mencetak hanya nama karyawan (kolom 1) ke file baru:

$ awk 'print $1' sample_file.txt > nama_karyawan.txt

Saya memverifikasi melalui perintah cat bahwa file baru hanya berisi nama-nama karyawan.

Contoh 7: Gunakan awk untuk mencetak hanya baris yang tidak kosong dari file

Awk memiliki beberapa perintah bawaan yang dapat Anda gunakan untuk memfilter output. Misalnya, perintah NF digunakan untuk menyimpan hitungan bidang dalam catatan input saat ini. Di sini, kita akan menggunakan perintah NF untuk mencetak hanya baris file yang tidak kosong:

$ awk 'NF > 0' sample_file.txt

Jelas, Anda dapat menggunakan perintah berikut untuk mencetak baris kosong:

$ awk 'NF < 0' sample_file.txt

Contoh 8: Gunakan awk untuk menghitung total baris dalam file

Fungsi built-in lain yang disebut NR menyimpan hitungan jumlah catatan input (biasanya baris) dari file yang diberikan. Anda dapat menggunakan fungsi ini di awk sebagai berikut untuk menghitung jumlah baris dalam file:

$ awk 'END print NR ' sample_file.txt

Ini adalah informasi dasar yang Anda butuhkan untuk memulai dengan memisahkan file dengan perintah awk. Anda dapat menggunakan kombinasi dari contoh-contoh ini untuk mengambil informasi yang lebih bermakna dari file string Anda melalui awk.

Cara Menggunakan Xdotool untuk Merangsang Klik Mouse dan Keystroke di Linux
Xdotool adalah alat baris perintah sumber terbuka dan gratis untuk mensimulasikan klik mouse dan penekanan tombol. Artikel ini akan membahas panduan s...
5 Produk Mouse Komputer Ergonomis Terbaik untuk Linux
Apakah penggunaan komputer yang lama menyebabkan rasa sakit di pergelangan tangan atau jari Anda?? Apakah Anda menderita persendian yang kaku dan teru...
Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...