Cara Membenarkan Awk Menggunakan Pembolehubah Shell - Bahagian 11

Cara Membenarkan Awk Menggunakan Pembolehubah Shell - Bahagian 11

Apabila kita menulis skrip shell, kita biasanya memasukkan program atau arahan yang lebih kecil seperti Awk Operasi dalam skrip kami. Dalam kes AWK, kita perlu mencari cara untuk melewati beberapa nilai dari shell ke operasi AWK.

Ini boleh dilakukan dengan menggunakan pembolehubah shell dalam arahan awk, dan di bahagian siri ini, kita akan belajar bagaimana untuk membenarkan AWK menggunakan pembolehubah shell yang mungkin mengandungi nilai yang kita mahu lulus kepada arahan AWK.

Terdapat dua cara anda boleh membolehkan AWK menggunakan pembolehubah shell:

1. Menggunakan petikan shell

Mari kita lihat contoh untuk menggambarkan bagaimana anda boleh menggunakan shell yang benar. Dalam contoh ini, kami ingin mencari nama pengguna dalam fail /etc/passwd, menapis dan mencetak maklumat akaun pengguna.

Oleh itu, kita boleh menulis a ujian.sh Skrip dengan kandungan berikut:

#!/bin/bash #READ INPUT USER BACA -P "Sila masukkan nama pengguna:" nama pengguna #search untuk nama pengguna dalam/etc/passwd dan cetak butiran pada kucing skrin/etc/passwd | awk "/ $ username/" 'print $ 0' 

Selepas itu, simpan fail dan keluar.

Tafsiran perintah awk di ujian.sh Skrip di atas:

kucing /etc /passwd | awk "/ $ username/" 'print $ 0' 

"/ $ nama pengguna/" - Petikan Shell Digunakan untuk menggantikan nilai pembolehubah shell nama pengguna dalam perintah awk. Nilai nama pengguna adalah corak yang akan dicari dalam fail /etc/passwd.

Perhatikan bahawa petikan berganda berada di luar skrip awk, 'cetak $ 0'.

Kemudian buat skrip boleh dilaksanakan dan jalankan seperti berikut:

$ chmod +x ujian.sh $ ./teks.sh 

Setelah menjalankan skrip, anda akan diminta memasuki a nama pengguna, Taipkan A yang sah nama pengguna dan memukul Masukkan. Anda akan melihat butiran akaun pengguna dari /etc/passwd fail seperti di bawah:

Skrip shell untuk mencari nama pengguna dalam fail kata laluan

2. Menggunakan tugasan pemboleh ubah AWK

Kaedah ini jauh lebih mudah dan lebih baik berbanding dengan kaedah yang ada di atas. Memandangkan contoh di atas, kita boleh menjalankan arahan mudah untuk mencapai pekerjaan. Di bawah kaedah ini, kami menggunakan -v Pilihan untuk memberikan pemboleh ubah shell kepada pemboleh ubah awk.

Pertama, buat pemboleh ubah shell, nama pengguna dan berikan nama yang ingin kita cari di /etc/passswd Fail:

Nama pengguna = "Aaronkilik" 

Kemudian taipkan arahan di bawah dan tekan Enter:

# kucing /etc /passwd | awk -v name = "$ username" '$ 0 ~ name print $ 0' 
Cari nama pengguna dalam fail kata laluan menggunakan AWK

Penjelasan arahan di atas:

  1. -v - Pilihan AWK untuk mengisytiharkan pemboleh ubah
  2. nama pengguna - adalah pemboleh ubah shell
  3. nama - adalah pemboleh ubah awk

Mari kita lihat dengan teliti $ 0 ~ Nama Di dalam skrip Awk, '$ 0 ~ name print $ 0'. Ingatlah, ketika kami meliputi pengendali perbandingan AWK dalam bahagian 4 siri ini, salah satu pengendali perbandingan adalah nilai ~ corak, yang bermaksud: benar jika nilai sepadan dengan corak.

The output ($ 0) perintah kucing disalurkan ke awk sepadan dengan corak (Aaronkilik) yang merupakan nama yang kita cari masuk /etc/passwd, Akibatnya, operasi perbandingan itu benar. Garis yang mengandungi maklumat akaun pengguna kemudian dicetak pada skrin.

Kesimpulan

Kami telah merangkumi bahagian penting ciri -ciri AWK, yang dapat membantu kami menggunakan pembolehubah shell dalam arahan AWK. Berkali -kali, anda akan menulis program kecil atau arahan kecil dalam skrip shell dan oleh itu, anda perlu mempunyai pemahaman yang jelas tentang cara menggunakan pembolehubah shell dalam arahan awk.

Di bahagian seterusnya siri Awk, kami akan menyelam ke dalam satu lagi bahagian kritikal ciri -ciri AWK, iaitu penyata kawalan aliran. Oleh itu, teruskan dan terus belajar dan berkongsi.