Awk - ciri canggih

Awk - ciri canggih

Awk adalah alat pemprosesan dan manipulasi teks yang kuat yang menyediakan pelbagai ciri canggih untuk pengguna yang berpengalaman. Beberapa ciri canggih AWK yang paling berguna termasuk ungkapan biasa, pernyataan bersyarat, tatasusunan, fungsi, dan fungsi manipulasi rentetan. Dengan ciri -ciri ini, AWK menyediakan alat yang kuat dan fleksibel yang boleh digunakan untuk pelbagai tugas, termasuk analisis fail log, pemantauan sistem, pengekstrakan data dan transformasi, dan generasi laporan.

Dalam artikel ini, kami akan meneroka beberapa ciri AWK yang paling berguna dan kuat untuk pengguna lanjutan. Tutorial ini merangkumi:

  1. Menggunakan ekspresi biasa dalam Awk
  2. Menggunakan pernyataan bersyarat
  3. Bekerja dengan Arrays dengan Awk
  4. Bekerja dengan fungsi dalam Awk
  5. Manipulasi String dengan Awk

Mari mulakan artikel:

Ungkapan biasa

Salah satu ciri paling kuat Awk adalah sokongannya untuk ekspresi biasa. Ekspresi biasa adalah corak yang menggambarkan set rentetan, dan boleh digunakan untuk memadankan, mencari, dan memanipulasi data teks.

Sebagai contoh, arahan berikut akan mencetak semua baris yang mengandungi perkataan "ralat" dalam fail log:

awk '/ralat/' logfile.txt
1awk '/ralat/' logfile.txt

Perintah ini akan menggunakan AWK untuk mencari fail log untuk baris yang mengandungi perkataan "ralat", dan mencetak garisan tersebut ke konsol.

Kenyataan bersyarat

AWK menyokong kenyataan bersyarat, yang membolehkan anda melaksanakan arahan yang berbeza berdasarkan nilai pembolehubah atau ekspresi.

Sebagai contoh, arahan berikut akan mencetak "walaupun" atau "ganjil" untuk setiap nombor dalam fail, bergantung kepada sama ada ia sama atau ganjil:

awk 'if ($ 1 % 2 == 0) cetak $ 1, "walaupun"; Nombor lain cetak $ 1, "ganjil" '.txt
1awk 'if ($ 1 % 2 == 0) cetak $ 1, "walaupun"; Nombor lain cetak $ 1, "ganjil" '.txt

Perintah ini akan menggunakan AWK untuk memeriksa sama ada setiap nombor dalam fail adalah walaupun atau ganjil, dan mencetak hasilnya ke konsol.

Tatasusunan

Awk juga menyokong tatasusunan, yang membolehkan anda menyimpan dan memanipulasi set nilai atau struktur data.

Sebagai contoh, arahan berikut akan mengira bilangan kejadian setiap perkataan dalam fail teks:

awk 'untuk (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt
1awk 'untuk (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt

Perintah ini akan menggunakan Awk untuk gelung melalui setiap perkataan dalam fail, dan simpan kiraan setiap perkataan dalam array. Hasil akhir dicetak ke konsol.

Fungsi

AWK menyokong fungsi yang ditentukan pengguna, yang membolehkan anda membuat kod yang boleh diguna semula untuk tugas biasa.

Sebagai contoh, arahan berikut akan menggunakan fungsi yang ditentukan pengguna untuk menukar suhu Fahrenheit ke Celsius:

AWK 'FUNCTION F2C (F) return (F-32)*(5/9) Print $ 1, F2C ($ 2)'.txt
1AWK 'FUNCTION F2C (F) return (F-32)*(5/9) Print $ 1, F2C ($ 2)'.txt

Perintah ini akan menggunakan AWK untuk membaca suhu di Fahrenheit dari fail, dan menukarnya ke Celsius menggunakan fungsi yang ditentukan oleh pengguna.

Manipulasi rentetan

AWK menyokong pelbagai fungsi manipulasi rentetan, yang membolehkan anda mengubah suai, menyatukan, dan berpecah rentetan.

Sebagai contoh, arahan berikut akan memecah senarai nilai yang dipisahkan koma ke dalam bidang yang berasingan:

AWK -F ', "Print $ 1, $ 2' Data.CSV
1AWK -F ',' 'Print $ 1, $ 2' Data.CSV

Perintah ini akan menggunakan AWK untuk memecah fail yang dipisahkan koma ke dalam medan berasingan, dan mencetak dua bidang pertama ke konsol.

Kesimpulan

AWK menyediakan pelbagai ciri canggih untuk pengguna yang berpengalaman, termasuk ungkapan biasa, penyataan bersyarat, tatasusunan, fungsi, dan manipulasi rentetan. Dengan menguasai ciri -ciri ini, anda boleh menjadi pakar pemprosesan teks dan manipulasi yang lebih efisien dan berkesan, dan menjimatkan masa dan usaha dalam kerja anda.