Ketahui cara menggunakan pembolehubah terbina dalam AWK - Bahagian 10
- 1903
- 568
- Clay Weber
Seperti yang kita dapati bahagian Awk Ciri-ciri, dalam bahagian siri ini, kita akan melalui konsep pembolehubah terbina dalam AWK. Terdapat dua jenis pembolehubah yang boleh anda gunakan dalam AWK, ini; Ditetapkan pengguna pembolehubah, yang kami tutupi dalam bahagian 8 dan terbina dalam pembolehubah.
Awk dibina dalam contoh pembolehubah Terbina dalam Pembolehubah mempunyai nilai yang telah ditakrifkan dalam Awk, Tetapi kita juga boleh mengubah nilai-nilai tersebut dengan teliti, pembolehubah terbina dalam termasuk:
NAMA FAIL: Nama fail input semasa (jangan ubah nama berubah)Fr: bilangan baris input semasa (iaitu garis input 1, 2, 3 ... SO, jangan ubah nama pembolehubah)Nf: bilangan medan dalam baris input semasa (jangan ubah nama berubah)OFS: pemisah medan outputFs: pemisah medan inputORS: pemisah rekod outputRs: pemisah rekod input
Marilah kita teruskan untuk menggambarkan penggunaan beberapa pembolehubah terbina dalam AWK di atas:
Untuk membaca nama fail fail input semasa, anda boleh menggunakan NAMA FAIL Pembolehubah terbina dalam seperti berikut:
$ awk 'cetak nama fail' ~/domain.txt
Pembolehubah nama fail AWK Anda akan menyedari bahawa, nama fail dicetak untuk setiap baris input, iaitu tingkah laku lalai Awk semasa anda menggunakan NAMA FAIL pemboleh ubah terbina dalam.
Menggunakan Nr Untuk mengira bilangan baris (rekod) dalam fail input, ingatlah bahawa, ia juga mengira garis kosong, seperti yang akan kita lihat dalam contoh di bawah.
Apabila kita melihat fail tersebut Domain.txt Menggunakan perintah kucing, ia mengandungi 14 garis dengan teks dan kosong 2 garis:
$ kucing ~/domain.txt
Cetak kandungan fail $ AWK 'end print "Bilangan rekod dalam fail adalah:", nr' ~/domain.txt
Awk bilangan baris Untuk mengira bilangan medan dalam rekod atau baris, kami menggunakan pembolehubah terbina dalam NR seperti berikut:
$ kucing ~/nama.txt
Senaraikan kandungan fail $ awk 'print "rekod:", nr, "mempunyai", nf, "fields"; '~/nama.txt
Awk bilangan medan dalam fail Seterusnya, anda juga boleh menentukan pemisah medan input menggunakan Fs pemboleh ubah terbina dalam, ia mentakrifkan bagaimana Awk membahagikan garis input ke dalam medan.
Nilai lalai untuk Fs adalah ruang dan tab, Tetapi kita boleh mengubah nilai Fs kepada mana -mana watak yang akan mengarahkan AWK untuk membahagikan baris input dengan sewajarnya.
Terdapat dua kaedah untuk melakukan ini:
- Satu kaedah ialah menggunakan Fs pemboleh ubah terbina dalam
- dan yang kedua adalah untuk memohon -F Pilihan AWK
Pertimbangkan fail /etc/passwd Pada sistem Linux, medan dalam fail ini dibahagikan dengan menggunakan : watak, jadi kita boleh menentukannya sebagai pemisah medan input baru apabila kita ingin menyaring medan tertentu seperti dalam contoh berikut:
Kita boleh menggunakan -F pilihan seperti berikut:
$ awk -f ': "Print $ 1, $ 4;' /etc /Passwd
Medan penapis awk dalam fail kata laluan Secara pilihan, kita juga boleh memanfaatkan Fs Pembolehubah terbina dalam seperti di bawah:
$ awk 'bermula fs = ":"; cetak $ 1, $ 4; ' /etc /passwd
Medan penapis dalam fail menggunakan AWK Untuk menentukan pemisah medan output, gunakan OFS Pembolehubah terbina dalam, ia mentakrifkan bagaimana medan output akan dipisahkan menggunakan watak yang kami gunakan seperti dalam contoh di bawah:
$ awk -f ': "Begin ofs =" ==> "; Print $ 1, $ 4;' /etc /Passwd
Tambahkan pemisah ke medan dalam fail Di dalam ini Bahagian 10, Kami telah meneroka idea menggunakan pembolehubah terbina dalam AWK yang dilengkapi dengan nilai yang telah ditetapkan. Tetapi kita juga boleh mengubah nilai -nilai ini, bagaimanapun, tidak disyorkan untuk melakukannya melainkan jika anda tahu apa yang anda lakukan, dengan pemahaman yang mencukupi.
Selepas ini, kita akan maju untuk menampung bagaimana kita boleh menggunakan pembolehubah shell dalam operasi perintah awk, oleh itu, terus berhubung dengan Tecmint.
- « Geary - pelanggan e -mel moden yang cantik untuk Linux
- Cumulus - aplikasi cuaca masa nyata untuk desktop linux »