Pengenalan | Kami akan membongkar secara beransur-ansur fungsi awk Dalam bahagian ini, kami akan memperkenalkan konsep pembolehubah terbina dalam dalam awk. Terdapat dua jenis pembolehubah yang boleh anda gunakan dalam awk: pembolehubah yang ditentukan pengguna dan pembolehubah terbina dalam. |
Kami akan membongkar secara beransur-ansur keupayaan awk Dalam bahagian ini, kami akan memperkenalkan konsep pembolehubah terbina dalam awk. Terdapat dua jenis pembolehubah yang boleh anda gunakan dalam awk: pembolehubah yang ditentukan pengguna dan pembolehubah terbina dalam. Pembolehubah terbina dalam awk sudah mempunyai nilai yang dipratentukan, tetapi kami juga boleh mengubah suai nilai ini dengan berhati-hati.
pembolehubah terbina dalam awk termasuk:Mari kami terus menunjukkan beberapa kaedah menggunakan pembolehubah terbina dalam awk di atas Untuk membaca nama fail input semasa, anda boleh menggunakan pembolehubah terbina dalam FILENAME, seperti berikut: $ awk ' { print FILENAME } '. ~/domains.txt
Anda akan melihat bahawa setiap baris akan mengeluarkan nama fail sekali, iaitu tingkah laku lalai awk apabila anda menggunakan pembolehubah terbina dalam FILENAME. Kita boleh menggunakan NR untuk mengira bilangan baris (rekod) dalam fail input, ingat: ia juga akan mengira baris kosong, seperti yang akan kita lihat dalam contoh berikut. Kandungan fail output Apabila kami menggunakan arahan cat untuk melihat domains.txt fail, kami akan mendapati ia mempunyai 14 baris teks dan 2 baris kosong: $ cat ~/domains.txt
awk mengira baris:$ awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt
$ awk '{ "Record:",NR,"has",NF,"fields" ; }' ~/names.txt
Pembolehubah terbina dalam FS:
Anda juga boleh menentukan pembatas fail input menggunakan pembolehubah terbina dalam FS, yang mentakrifkan cara awk membahagikan baris input kepada medan. Nilai lalai FS ialah "ruang" dan "tab", tetapi kami juga boleh mengubah suai nilai FS kepada mana-mana aksara untuk membenarkan awk memisahkan baris input mengikut situasi. Terdapat dua cara untuk mencapai ini: yang pertama ialah menggunakan pembolehubah terbina dalam FS; yang kedua ialah menggunakan pilihan -F awk. Mari lihat fail /etc/passwd pada sistem Linux pemisah medan, dan awk menapis setiap medan dalam fail kata laluan Kita boleh menggunakan pilihan -F, seperti berikut: $ awk -F':' '{ print $1, $4 ;}' /etc/passwd
.Selain itu, kita juga boleh menggunakan pembolehubah terbina dalam FS, seperti berikut: $ awk ' BEGIN { FS=":" } { print $1, $4 } ' /etc/passwd
Gunakan pembolehubah terbina dalam OFS:Gunakan pembolehubah terbina dalam OFS untuk menentukan pembatas medan untuk output, yang akan menentukan cara menggunakan aksara yang ditentukan untuk memisahkan medan output: $ awk -F':' ' BEGIN { OFS. ="= =>" ;} { cetak $1, $4 ;}' /etc/passwd
Dalam bahagian ini, kami telah mempelajari idea menggunakan pembolehubah terbina dalam awk dengan nilai yang telah ditetapkan. Tetapi kami juga boleh mengubah suai nilai ini, walaupun ini tidak disyorkan melainkan anda tahu perkara yang anda lakukan dan faham sepenuhnya (nilai pembolehubah ini).
Selepas ini, kami akan terus mempelajari cara menggunakan pembolehubah shell dalam operasi arahan awk, jadi sila teruskan bersama kami.
Atas ialah kandungan terperinci Belajar menggunakan pembolehubah terbina dalam AWK dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!