Cara membaca input awk dari stdin di linux - bagian 7

Cara membaca input awk dari stdin di linux - bagian 7

Di bagian sebelumnya dari serial AWK Tool, kami melihat input membaca sebagian besar dari file, tetapi bagaimana jika Anda ingin membaca input dari Stdin.

Di bagian 7 dari seri AWK ini, kami akan melihat beberapa contoh di mana Anda dapat memfilter output perintah lain alih -alih membaca input dari file.

Kami akan mulai dengan utilitas dir yang berfungsi mirip dengan perintah LS, dalam contoh pertama di bawah ini, kami menggunakan output dari Dir -l Perintah sebagai input untuk AWK untuk mencetak nama pengguna pemilik, GroupName dan file yang dimilikinya di direktori saat ini:

# dir -l | awk 'cetak $ 3, $ 4, $ 9;' 
Daftar file yang dimiliki oleh pengguna di direktori

Lihatlah contoh lain di mana kami menggunakan ekspresi AWK, di sini, kami ingin mencetak file yang dimiliki oleh akar pengguna dengan menggunakan ekspresi untuk memfilter string seperti pada perintah awk di bawah ini:

# dir -l | awk '$ 3 == "root" cetak $ 1, $ 3, $ 4, $ 9;' 
Daftar file yang dimiliki oleh pengguna root

Perintah di atas termasuk (==) Operator perbandingan untuk membantu kami memfilter file dalam direktori saat ini yang dimiliki oleh pengguna root. Ini dicapai dengan menggunakan ekspresi $ 3 == "root".

Mari kita lihat contoh lain di mana kita menggunakan operator perbandingan awk untuk mencocokkan string tertentu.

Di sini, kami telah menggunakan utilitas kucing untuk melihat konten file bernama tecmint_deals.txt dan kami ingin melihat penawaran tipe Tech Hanya, jadi kami akan menjalankan perintah berikut:

# Cat tecmint_deals.txt # kucing tecmint_deals.txt | awk '$ 4 ~ /tech /print' # cat tecmint_deals.txt | awk '$ 4 ~ /tech /print' 
Gunakan operator perbandingan awk untuk mencocokkan string

Dalam contoh di atas, kami telah menggunakan nilainya ~ /pola / operator perbandingan, tetapi ada dua perintah untuk mencoba dan mengeluarkan sesuatu yang sangat penting.

Saat Anda menjalankan perintah dengan pola Tech Tidak ada yang dicetak karena tidak ada kesepakatan dari jenis itu, tetapi dengan Tech, Anda mendapatkan penawaran tipe Tech.

Jadi selalu berhati -hatilah saat menggunakan operator perbandingan ini, ini sangat sensitif seperti yang telah kita lihat di atas.

Anda selalu dapat menggunakan output dari perintah lain sebagai gantinya sebagai input untuk AWK alih -alih membaca input dari file, ini sangat sederhana seperti yang telah kita lihat dalam contoh di atas.

Semoga contoh -contohnya cukup jelas untuk Anda pahami, jika Anda memiliki masalah, Anda dapat mengekspresikannya melalui bagian komentar di bawah ini dan ingat untuk memeriksa bagian selanjutnya dari seri di mana kita akan melihat AWK fitur seperti variabel, Ekspresi Numerik Dan operator penugasan.