Pelajari Cara Menggunakan Variabel bawaan AWK - Bagian 10

Pelajari Cara Menggunakan Variabel bawaan AWK - Bagian 10

Saat kami mengungkap bagian AWK Fitur, di bagian seri ini, kami akan berjalan melalui konsep variabel bawaan di AWK. Ada dua jenis variabel yang dapat Anda gunakan dalam AWK, ini; ditetapkan pengguna variabel, yang kami bahas di bagian 8 dan bawaan variabel.

Contoh variabel bawaan awk

Bawaan Variabel memiliki nilai yang sudah didefinisikan AWK, Tetapi kita juga dapat dengan hati-hati mengubah nilai-nilai itu, variabel bawaan meliputi:

  1. NAMA FILE : Nama file input saat ini (jangan ubah nama variabel)
  2. Fr : Jumlah baris input saat ini (yaitu baris input 1, 2, 3 ... jadi, jangan ubah nama variabel)
  3. Nf : Jumlah bidang dalam baris input saat ini (jangan ubah nama variabel)
  4. OFS : pemisah bidang output
  5. FS : pemisah bidang input
  6. Ors : Pemisah Rekam Output
  7. Rs : Pemisah Rekaman Input

Mari kita lanjutkan untuk menggambarkan penggunaan beberapa variabel bawaan AWK di atas:

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

$ awk 'cetak nama file' ~/domain.txt 
Variabel nama file awk

Anda akan menyadari bahwa, nama file dicetak untuk setiap baris input, yaitu perilaku default dari AWK Saat Anda menggunakan NAMA FILE variabel bawaan.

Menggunakan Nr Untuk menghitung jumlah baris (catatan) dalam file input, ingat bahwa, itu juga menghitung garis kosong, seperti yang akan kita lihat dalam contoh di bawah ini.

Saat kita melihat file Domain.txt Menggunakan perintah kucing, berisi 14 baris dengan teks dan kosong 2 Baris:

$ kucing ~/domain.txt 
Cetak isi file
$ awk 'end print "Jumlah catatan dalam file adalah:", nr' ~/domain.txt 
Jumlah jumlah garis yang bagus

Untuk menghitung jumlah bidang dalam catatan atau garis, kami menggunakan variabel bawaan NR sebagai berikut:

$ kucing ~/nama.txt 
Daftar konten file
$ awk 'print "Record:", nr, "have", nf, "fields";  '~/nama.txt 
Jumlah jumlah bidang yang bagus dalam file

Selanjutnya, Anda juga dapat menentukan pemisah bidang input menggunakan FS variabel bawaan, ini mendefinisikan caranya AWK membagi garis input menjadi bidang.

Nilai default untuk FS adalah ruang angkasa Dan tab, Tapi kita bisa mengubah nilainya FS untuk karakter apa pun yang akan menginstruksikan AWK untuk membagi baris input yang sesuai.

Ada dua metode untuk melakukan ini:

  1. Salah satu metode adalah menggunakan FS variabel bawaan
  2. dan yang kedua adalah memohon -F Opsi AWK

Pertimbangkan file /etc/passwd Pada sistem Linux, bidang dalam file ini dibagi menggunakan : karakter, jadi kita dapat menentukannya sebagai pemisah bidang input baru ketika kita ingin memfilter bidang tertentu seperti dalam contoh -contoh berikut:

Kita bisa menggunakan -F Opsi sebagai berikut:

$ awk -f ': "print $ 1, $ 4;' /etc /passwd 
Bidang filter awk dalam file kata sandi

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

$ awk 'begin fs = ":";  cetak $ 1, $ 4;  ' /etc /passwd 
Memfilter bidang dalam file menggunakan awk

Untuk menentukan pemisah bidang output, gunakan OFS Variabel built-in, ini mendefinisikan bagaimana bidang output akan dipisahkan menggunakan karakter yang kita gunakan seperti pada contoh di bawah ini:

$ awk -f ': "begin ofs =" ==> "; print $ 1, $ 4;' /etc /passwd 
Tambahkan pemisah ke bidang dalam file

Di dalam Bagian 10, Kami telah mengeksplorasi gagasan menggunakan variabel bawaan awk yang datang dengan nilai yang telah ditentukan sebelumnya. Tapi kami juga dapat mengubah nilai -nilai ini, meskipun, tidak disarankan untuk melakukannya kecuali Anda tahu apa yang Anda lakukan, dengan pemahaman yang memadai.

Setelah ini, kita akan maju untuk menutupi bagaimana kita dapat menggunakan variabel shell dalam operasi perintah awk, oleh karena itu, tetap terhubung ke Tecmint.