Cara Membaca Input Awk Dari Stdin di Linux - Bahagian 7

Cara Membaca Input Awk Dari Stdin di Linux - Bahagian 7

Di bahagian sebelumnya siri Alat Awk, kami melihat input membaca kebanyakannya dari fail, tetapi bagaimana jika anda ingin membaca input dari Stdin.

Dalam bahagian 7 siri AWK ini, kita akan melihat beberapa contoh di mana anda boleh menapis output arahan lain dan bukannya membaca input dari fail.

Kita akan mulakan dengan utiliti dir yang berfungsi sama dengan perintah LS, dalam contoh pertama di bawah, kita menggunakan output dir -l Perintah sebagai input untuk awk untuk mencetak nama pengguna, nama kumpulan dan fail yang dimilikinya dalam direktori semasa:

# dir -l | awk 'cetak $ 3, $ 4, $ 9;' 
Senaraikan fail yang dimiliki oleh pengguna dalam direktori

Lihatlah contoh lain di mana kami menggunakan ekspresi AWK, di sini, kami ingin mencetak fail yang dimiliki oleh akar Pengguna dengan menggunakan ungkapan untuk menapis rentetan seperti dalam arahan AWK di bawah:

# dir -l | awk '$ 3 == "root" print $ 1, $ 3, $ 4, $ 9;' 
Senaraikan fail yang dimiliki oleh pengguna root

Perintah di atas merangkumi (==) Operator perbandingan untuk membantu kami menyaring fail dalam direktori semasa yang dimiliki oleh pengguna root. Ini dicapai dengan menggunakan ungkapan $ 3 == "Root".

Mari kita lihat contoh lain di mana kita menggunakan pengendali perbandingan AWK untuk memadankan rentetan tertentu.

Di sini, kami telah menggunakan utiliti CAT untuk melihat kandungan fail yang dinamakan tecmint_deals.txt Dan kami mahu melihat tawaran jenis Tech Hanya, jadi kita akan menjalankan arahan berikut:

# kucing tecmint_deals.txt # kucing tecmint_deals.txt | awk '$ 4 ~ /tech /print' # kucing tecmint_deals.txt | awk '$ 4 ~ /tech /print' 
Gunakan pengendali perbandingan awk untuk memadankan rentetan

Dalam contoh di atas, kami telah menggunakan nilai ~ /corak / pengendali perbandingan, tetapi ada dua arahan untuk mencuba dan mengeluarkan sesuatu yang sangat penting.

Apabila anda menjalankan arahan dengan corak Tech tidak ada yang dicetak kerana tidak ada perjanjian jenis itu, tetapi dengan Tech, anda mendapat tawaran jenis Tech.

Oleh itu, berhati -hati apabila menggunakan pengendali perbandingan ini, ia adalah sensitif kes seperti yang kita lihat di atas.

Anda sentiasa boleh menggunakan output arahan lain bukan sebagai input untuk AWK dan bukannya membaca input dari fail, ini sangat mudah seperti yang kita lihat dalam contoh di atas.

Semoga contohnya cukup jelas untuk anda fahami, jika anda mempunyai sebarang kebimbangan, anda dapat menyatakannya melalui bahagian komen di bawah dan ingat untuk memeriksa bahagian seterusnya siri di mana kami akan melihat awk ciri -ciri seperti pembolehubah, Ekspresi Numerik dan Pengendali tugasan.