Aduh

Cara menggunakan pemboleh ubah dalam perintah awk

Cara menggunakan pemboleh ubah dalam perintah awk
Pemboleh ubah digunakan untuk menyimpan nilai sementara dalam bahasa pengaturcaraan apa pun.  Mendefinisikan pemboleh ubah dalam perintah awk mirip dengan bahasa skrip bash dan ia berfungsi seperti bash apabila pemboleh ubah shell digunakan dengan satu petikan dan petikan ganda. Perintah Awk mempunyai banyak pemboleh ubah terbina dalam untuk pelbagai tujuan. Bagaimana pemboleh ubah yang ditentukan pengguna, terbina dalam dan shell dapat digunakan dalam perintah awk ditunjukkan dalam tutorial ini dengan menggunakan contoh yang berbeza.

Example -1: Mendefinisikan dan mencetak pemboleh ubah

Perintah 'awk' menggunakan pilihan '-v' untuk menentukan pemboleh ubah. Dalam contoh ini, myvar pemboleh ubah ditakrifkan dalam perintah 'awk' untuk menyimpan nilainya, "Pemboleh ubah AWK" yang dicetak kemudian. Jalankan arahan berikut dari terminal untuk memeriksa output.

$ gema | awk -v myvar = 'pemboleh ubah AWK' 'print myvar'

Pengeluaran:

Contoh - 2: Menggunakan pemboleh ubah shell dalam awk dengan satu petikan dan petikan berganda

Contohnya menunjukkan bagaimana pemboleh ubah shell dapat digunakan perintah 'awk'. Di sini, pemboleh ubah shell, myvar dinyatakan dengan nilai, "Petunjuk Linux" dalam arahan pertama. Simbol '$' digunakan dengan nama pemboleh ubah shell untuk membaca nilainya. Perintah kedua membaca pemboleh ubah, $ myval dengan petikan tunggal (') dan perintah ketiga membaca pemboleh ubah $ myvar dengan petikan berganda (") dalam pernyataan' awk '.

$ myvar = "Petunjuk Linux"
$ gema | awk -v awkvar = '$ myvar' 'cetak awkvar; '
$ gema | awk -v awkvar = "$ myvar" 'cetak awkvar; '

Pengeluaran:

Ini ditunjukkan dalam output bahawa nilai $ myvar tidak dapat dibaca ketika ditutup dengan satu petikan (') dan outputnya adalah $ myvar. Nilai $ myvar dicetak apabila dilampirkan dengan petikan berganda (“).

Contoh - 3: Membaca pemboleh ubah ARGC dalam awk

Pemboleh ubah ARGC digunakan untuk mengira jumlah argumen baris perintah. Tiga pemboleh ubah argumen baris perintah (t1, t2, t3) diteruskan dalam skrip awk berikut. Di sini, jumlah argumen dengan skrip adalah 4. Jalankan skrip dari terminal.

$ awk 'BEGIN print "Total argumen =", ARGC' t1 t2 t3

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Contoh - 4: Membaca kandungan fail dengan pemboleh ubah argumen

Buat fail teks bernama pelanggan.txt dengan kandungan berikut untuk mempraktikkan contoh ini. Di sini, setiap bidang fail dipisahkan satu tab ruang.

pelanggan.txt

Nama ID
103847 John Micheal
209485 Watson
974732 Mira Hossain

Perintah awk dapat membaca setiap bidang dari mana-mana fail teks dengan pemboleh ubah argumen. Terdapat dua bidang di pelanggan.txt fail. Ini adalah ID dan Nama. Skrip berikut akan mencetak dua bidang ini dengan pemboleh ubah argumen, $ 1 dan $ 2 dengan memisahkan dua tab ruang. Jalankan skrip dari terminal.

pelanggan $ kucing.txt
pelanggan $ kucing.txt | awk 'cetak $ 1 "\ t \ t" $ 2;'

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh- 5: Menggunakan pilihan pemboleh ubah, FS dan pemisah medan dengan perintah awk

Pemboleh ubah FS digunakan dalam perintah awk sebagai pemisah medan. Ruang digunakan sebagai nilai lalai FS. Perintah berikut akan membaca fail pelanggan.txt menggunakan ruang sebagai pemisah bidang dan mencetak kandungan fail. Jalankan arahan dari terminal.

$ FS awk pelanggan.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Perintah awk boleh menggunakan watak lain sebagai pemisah medan dengan menggunakan pilihan '-F'. Buat fail teks bernama produk.txt dengan kandungan berikut di mana ':' digunakan sebagai pemisah medan.

produk.txt

101: Kek: $ 30
102: Pensil: $ 5
103: Sabun: $ 3
104: Syampu: $ 10

Terdapat tiga medan dalam fail, produk.txt yang mengandungi id produk, nama dan harga. Perintah awk berikut hanya akan mencetak medan kedua setiap baris. Jalankan arahan dari terminal.

$ produk kucing.txt
$ awk -F ':' 'print $ 2' produk.txt

Pengeluaran:

Di sini, arahan pertama mencetak kandungan produk.txt dan arahan kedua hanya mencetak medan kedua fail.

Contoh - 6: Menggunakan pemboleh ubah terbina dalam, NR dengan perintah awk

Pemboleh ubah NR digunakan dalam perintah awk untuk mengira jumlah rekod atau baris fail. Buat fail teks bernama pelajar.txt untuk menguji fungsi pemboleh ubah ini.

pelajar.txt

Nama Batch Semester
John 20 3
Mira 22 1
Ella 18
Charle 15 8

Skrip awk berikut akan mencetak tiga baris pertama produk.txt fail. Di sini, syarat ditambah dengan menggunakan pemboleh ubah NR. Perintah akan mencetak garis-garis di mana nilai NR kurang dari 4. Jalankan skrip dari terminal.

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

$ pelajar kucing.txt | awk 'NR < 4'

Contoh - 7: Menggunakan pemboleh ubah terbina dalam, NF dengan perintah awk

Pemboleh ubah NF digunakan dalam perintah awk untuk mengira jumlah medan di setiap baris fail. Skrip awk berikut digunakan untuk fail, pelajar.txt yang dibuat dalam contoh sebelumnya. Skrip akan mencetak garis dari pelajar.txt fail di mana jumlah medan kurang dari 3. Jalankan arahan dari terminal.

$ pelajar kucing.txt | awk 'NF < 3'

Pengeluaran:

Terdapat hanya satu baris dalam fail di mana jumlah medan kurang dari 3 yang dicetak sebagai output.

Contoh - 8: Menggunakan pemboleh ubah terbina dalam, OFS dengan perintah awk

Pemboleh ubah OFS digunakan dalam perintah awk untuk menambahkan pemisah medan output dalam output. produk.txt fail digunakan dalam contoh ini untuk menunjukkan penggunaan pemboleh ubah OFS. ':' digunakan sebagai pemisah medan dalam produk.fail txt. Skrip awk berikut digunakan '->' sebagai nilai OFS dan, medan kedua dan ketiga fail akan dicetak dengan menambahkan pemisah ini. Jalankan arahan dari terminal.

$ produk kucing.txt
$ awk -F ':' 'BEGIN OFS = "->"; cetak $ 2, $ 3;' produk.txt

Pengeluaran:

Output berikut akan dicetak setelah menjalankan perintah.

Kesimpulan:

Penggunaan pemboleh ubah awk yang paling biasa dicuba untuk dijelaskan dalam tutorial ini. Harap, pembaca dapat menggunakan pemboleh ubah awk dengan betul dalam skrip setelah mempraktikkan tutorial ini.

Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...
Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...