Awk - ciri canggih
- 4312
- 1030
- Wendell Shields
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:
- Menggunakan ekspresi biasa dalam Awk
- Menggunakan pernyataan bersyarat
- Bekerja dengan Arrays dengan Awk
- Bekerja dengan fungsi dalam Awk
- 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.txt1 | awk '/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" '.txt1 | awk '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.txt1 | awk '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)'.txt1 | AWK '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.CSV1 | AWK -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.
- « Senarai Semak Penyelenggaraan Pelayan
- Amalan terbaik dan petua untuk menulis skrip shell sebagai pro »