Pelajari Cara Menggunakan Variabel bawaan AWK - Bagian 10
- 2054
- 493
- John Ratke
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 awkBawaan Variabel memiliki nilai yang sudah didefinisikan AWK, Tetapi kita juga dapat dengan hati-hati mengubah nilai-nilai itu, variabel bawaan meliputi:
NAMA FILE
: Nama file input saat ini (jangan ubah nama variabel)Fr
: Jumlah baris input saat ini (yaitu baris input 1, 2, 3 ... jadi, jangan ubah nama variabel)Nf
: Jumlah bidang dalam baris input saat ini (jangan ubah nama variabel)OFS
: pemisah bidang outputFS
: pemisah bidang inputOrs
: Pemisah Rekam OutputRs
: 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.txtVariabel 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.txtCetak isi file
$ awk 'end print "Jumlah catatan dalam file adalah:", nr' ~/domain.txtJumlah jumlah garis yang bagus
Untuk menghitung jumlah bidang dalam catatan atau garis, kami menggunakan variabel bawaan NR sebagai berikut:
$ kucing ~/nama.txtDaftar konten file
$ awk 'print "Record:", nr, "have", nf, "fields"; '~/nama.txtJumlah 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:
- Salah satu metode adalah menggunakan FS variabel bawaan
- 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 /passwdBidang 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 /passwdMemfilter 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 /passwdTambahkan 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.
- « Geary - klien email modern yang tampan untuk Linux
- Cumulus - Aplikasi Cuaca Waktu Nyata untuk Desktop Linux »