Pelajari Cara Menggunakan Variabel Bawaan Awk - Bagian 10


Saat kita mengungkap bagian fitur Awk, di bagian seri ini, kita akan mempelajari konsep variabel bawaan di Awk. Ada dua jenis variabel yang dapat Anda gunakan di Awk, yaitu; Variabel ditentukan pengguna, yang telah kita bahas di Bagian 8 dan variabel bawaan.

Variabel Bawaan memiliki nilai yang sudah ditentukan di Awk, namun kita juga dapat dengan hati-hati mengubah nilai tersebut, variabel bawaannya meliputi:

  1. FILENAME : nama file masukan saat ini (jangan ubah nama variabel)
  2. FR : nomor baris masukan saat ini (yaitu baris masukan 1, 2, 3… seterusnya, jangan ubah nama variabel)
  3. NF : jumlah field pada baris input saat ini (jangan mengubah nama variabel)
  4. OFS : pemisah bidang keluaran
  5. FS : pemisah kolom masukan
  6. ORS : pemisah rekaman keluaran
  7. RS : pemisah data masukan

Mari kita lanjutkan dengan mengilustrasikan penggunaan beberapa variabel bawaan Awk di atas:

Untuk membaca nama file dari file input saat ini, Anda dapat menggunakan variabel bawaan FILENAME sebagai berikut:

awk ' { print FILENAME } ' ~/domains.txt 

Anda akan menyadari bahwa, nama file dicetak untuk setiap baris masukan, itu adalah perilaku default Awk ketika Anda menggunakan variabel bawaan FILENAME.

Menggunakan NR untuk menghitung jumlah baris (catatan) dalam file input, ingat bahwa, ini juga menghitung baris kosong, seperti yang akan kita lihat pada contoh di bawah.

Saat kita melihat file domains.txt menggunakan perintah cat, file tersebut berisi 14 baris dengan teks dan 2 baris kosong:

cat ~/domains.txt

awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt 

Untuk menghitung jumlah field dalam sebuah record atau baris, kita menggunakan variabel bawaan NR sebagai berikut:

cat ~/names.txt

awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

Selanjutnya, Anda juga dapat menentukan pemisah kolom masukan menggunakan variabel bawaan FS, yang mendefinisikan cara Awk membagi baris input menjadi beberapa kolom.

Nilai default untuk FS adalah spasi dan tab, namun kita dapat mengubah nilai FS ke karakter apa pun yang diinginkan. akan menginstruksikan Awk untuk membagi jalur input yang sesuai.

Ada dua metode untuk melakukan ini:

  1. salah satu caranya adalah dengan menggunakan variabel bawaan FS
  2. dan yang kedua adalah memanggil opsi -F Awk

Misalkan file /etc/passwd pada sistem Linux, field dalam file ini dibagi menggunakan karakter :, sehingga kita dapat menentukannya sebagai pemisah field input baru ketika kami ingin memfilter bidang tertentu seperti pada contoh berikut:

Kita dapat menggunakan opsi -F sebagai berikut:

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

Secara opsional, kita juga dapat memanfaatkan variabel bawaan FS seperti di bawah ini:

awk ' BEGIN {  FS=“:” ; }  { print $1, $4  ; } ' /etc/passwd

Untuk menentukan pemisah kolom keluaran, gunakan variabel bawaan OFS, yang mendefinisikan bagaimana kolom keluaran akan dipisahkan menggunakan karakter yang kita gunakan seperti pada contoh di bawah ini:

awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

Di Bagian 10 ini, kita telah mengeksplorasi ide menggunakan variabel bawaan Awk yang memiliki nilai yang telah ditentukan sebelumnya. Namun kita juga dapat mengubah nilai-nilai ini, namun tidak disarankan untuk melakukannya kecuali Anda mengetahui apa yang Anda lakukan, dengan pemahaman yang memadai.

Setelah ini, kita akan melanjutkan untuk membahas bagaimana kita dapat menggunakan variabel shell dalam operasi perintah Awk, oleh karena itu, tetaplah terhubung dengan Tecmint.