GNU/Linux >> Belajar Linux >  >> Ubuntu

10 Contoh Perintah Awk yang Luar Biasa di Linux

Awk adalah utilitas paling populer yang dikembangkan untuk tujuan ekstraksi data, pemrosesan teks, dan terlebih lagi seperti membuat laporan berformat. Ini jauh lebih mirip dengan sed tetapi lebih kuat daripada sed karena sed memiliki keterbatasan dalam pemrosesan teks. AWK tidak memiliki arti khusus untuk namanya karena dinamai menggunakan huruf pertama dari pengembangnya Alfred Aho, Peter J. Weinberger, dan Brian Kernighan.

Pada artikel ini, kita akan mempelajari 10 perintah awk mengagumkan yang harus Anda ketahui. Saya telah membuat dan menambahkan kumpulan data berikut di student.txt sebagai contoh. Kumpulan data memiliki 4 kolom dimana kolom pertama berisi nama depan, kolom kedua berisi nama kedua, kolom ketiga berisi usia dan yang terakhir berisi kelas.

Mencetak Bidang Tertentu Menggunakan Variabel

Awk memiliki banyak variabel prebuilt yang memiliki tujuan masing-masing. Dengan menggunakan perintah ini, kita dapat mencetak semua data bidang tertentu menggunakan $x di mana x mengacu pada posisi penomoran bidang.

$ awk '{print $1, $2}' student.txt

MULAI Variabel

Variabel BEGIN digunakan untuk menambahkan header atau judul ke data yang dihasilkan saat menjalankan skrip sebelum memproses data. Ini membantu dalam pengindeksan saat memformat tabel data. Dalam contoh berikut, saya telah mencetak beberapa teks sebagai pengindeksan dan kemudian mencetak semua nama siswa.

$ awk 'BEGIN {print "Students : "} {print $1}' student.txt

Variabel AKHIR

END adalah kebalikan dari BEGIN karena menjalankan skrip setelah pemrosesan data. Ini dapat digunakan untuk pelaporan akhir kumpulan data. Dalam contoh berikut, saya telah mencetak semua usia siswa dan kemudian mencetak beberapa pesan penutup.

$ awk '{print $3}

END {

print "These are student age "

} ' student.txt

Pemisah File

Spasi dan spasi Tab adalah pemisah default dari perintah awk namun kita dapat memisahkan teks berdasarkan pemisah lain seperti koma, garis miring, dll. Untuk mencapai ini, kita perlu menambahkan flag -F ke perintah dan pemisah yang disediakan dalam tanda kutip tunggal .

$ awk -F':' '{print $1}' /etc/passwd

Menjalankan Skrip Dari File

Kami juga dapat mengeksekusi skrip awk dari file yang memberi kami kecenderungan untuk membuat laporan secara efisien. Untuk ini, Anda perlu membuat file kemudian menulis skrip dan menjalankannya menggunakan perintah awk. Untuk demo, Anda dapat membuat nama file demo_script dan copy-paste script berikut.

$ vi demo_script

{

sum+=$3

}

END {

print("Sum of all student age is", sum)

}

Perintah awk memberikan tanda -f untuk mengeksekusi skrip dari file.

$ awk -f demo_script student.txt

Menggunakan Banyak Skrip

Kita dapat menjalankan beberapa skrip menggunakan titik koma. Pada contoh berikut, saya telah mencetak beberapa teks kemudian menyalurkan outputnya, dengan awk dan mencetak hasil yang dimodifikasi.

$ echo "Hello, Dr. John" | awk '{$3="George"; print $0}'

Hitung Jumlah Baris

Kita dapat mengalokasikan nomor ke laporan menggunakan variabel NR yang merupakan variabel bawaan awk yang secara otomatis mencetak nomor baris ke laporan.

$ awk '{print NR "\t" $0}' student.txt

Hitung Jumlah Kolom

Terkadang, saat menyiapkan data kita lupa menambahkan data pada kolom tertentu yang dapat menyebabkan ketidakteraturan dalam laporan. Kita dapat menghitung field menggunakan variabel NF yang memudahkan kita untuk meninjau dan menyusun laporan.

$ awk '{print NR".",$0 "\n Count=" NF}' student.txt

Jika Kondisi

Kondisi if dapat kita gunakan dalam menyusun laporan kondisional. Dalam contoh berikut, kami mencetak semua siswa yang usianya di bawah 16

$ awk '

BEGIN{

print "Student whose age are under 16 are:"

}

{

if($3<16){

print $1

}

}' student.txt

Untuk Putaran

Dalam contoh berikut, kami menggunakan for loop untuk mencetak 5 angka acak berturut-turut. Untuk menghasilkan angka acak, kami akan menggunakan fungsi Rand() yang merupakan fungsi bawaan sistem. Fungsi ini akan menghasilkan angka acak dalam desimal sehingga kita perlu mengalikan 100 untuk mendapatkan angka acak 1 hingga 100.

$ awk 'BEGIN {

for (i = 1; i <= 5; i++){

print int(100 * rand())

}

}'

Kesimpulan

Pada artikel ini, kita belajar tentang 10 perintah dan skrip awk yang mengagumkan. Saya harap Anda menyukai artikel ini.


Ubuntu
  1. 8 Contoh Perintah Linux TR

  2. Contoh Perintah rm di Linux

  3. Contoh Perintah ps di Linux

  1. sa Contoh Perintah di Linux

  2. w Contoh Perintah di Linux

  3. Contoh Perintah ac di Linux

  1. Contoh Perintah df di Linux

  2. du Contoh Perintah di Linux

  3. Contoh Perintah awk di Linux