Rumah >Tutorial sistem >LINUX >Belajar menggunakan pembolehubah terbina dalam AWK dalam Linux

Belajar menggunakan pembolehubah terbina dalam AWK dalam Linux

PHPz
PHPzke hadapan
2024-01-06 16:22:06546semak imbas
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.

linux下 awk内置变量使用介绍

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:
  • NAMA FAIL: Nama fail input semasa
  • NR: Nombor baris input semasa (merujuk kepada baris input 1, 2, 3...dll.)
  • NF: Nombor medan baris input semasa
  • OFS: Pemisah medan keluaran
  • FS: pemisah medan input
  • ORS: Pemisah rekod output
  • RS: Pemisah rekod input
NAMA FAIL :

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

linux下 awk内置变量使用介绍

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

linux下 awk内置变量使用介绍

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

linux下 awk内置变量使用介绍

awk mengira bilangan medan dalam fail:
$ awk '{ "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

linux下 awk内置变量使用介绍

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

.

linux下 awk内置变量使用介绍

Selain itu, kita juga boleh menggunakan pembolehubah terbina dalam FS, seperti berikut: $ awk ' BEGIN { FS=":" } { print $1, $4 } ' /etc/passwd

linux下 awk内置变量使用介绍

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

linux下 awk内置变量使用介绍

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!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam