AWK - Ekspresi Reguler
AWK sangat kuat dan efisien dalam menangani ekspresi reguler. Sejumlah tugas kompleks dapat diselesaikan dengan ekspresi reguler sederhana. Semua pakar baris perintah mengetahui kekuatan ekspresi reguler.
Bab ini membahas ekspresi reguler standar dengan contoh yang sesuai.
Dot
Ini cocok dengan salah satu karakter kecuali akhir karakter baris. Misalnya, contoh berikut cocokfin, fun, fan dll.
Contoh
[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'
Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut -
Keluaran
fun
fin
fan
Awal baris
Ini cocok dengan awal baris. Misalnya, contoh berikut mencetak semua garis yang dimulai dengan polaThe.
Contoh
[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
There
Their
Akhir baris
Ini cocok dengan akhir baris. Misalnya, contoh berikut mencetak baris yang diakhiri dengan hurufn.
Contoh
[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'
Keluaran
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
fun
fin
fan
Cocokkan kumpulan karakter
Ini digunakan untuk mencocokkan hanya satu dari beberapa karakter. Misalnya, contoh berikut ini cocok dengan polaCall dan Tall tapi tidak Ball.
Contoh
[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'
Keluaran
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Call
Tall
Set eksklusif
Dalam himpunan eksklusif, karat meniadakan himpunan karakter dalam tanda kurung siku. Misalnya, contoh berikut hanya mencetakBall.
Contoh
[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
Ball
Perubahan
Bilah vertikal memungkinkan ekspresi reguler di ORed secara logis. Misalnya, contoh cetakan berikutBall dan Call.
Contoh
[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
Call
Ball
Nol atau Satu Kejadian
Ini cocok dengan nol atau satu kemunculan dari karakter sebelumnya. Misalnya, contoh berikut cocokColour sebaik Color. Kami telah membuatnyau sebagai karakter opsional dengan menggunakan ?.
Contoh
[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
Colour
Color
Zero atau More Occurrence
Ini cocok dengan nol atau lebih kemunculan dari karakter sebelumnya. Misalnya, contoh berikut cocokca, cat, catt, dan seterusnya.
Contoh
[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
ca
cat
catt
Satu atau Lebih Kejadian
Ini cocok dengan satu atau lebih kemunculan karakter sebelumnya. Misalnya contoh di bawah ini cocok dengan satu atau lebih kemunculan2.
Contoh
[jerry]$ echo -e "111\n22\n123\n234\n456\n222" | awk '/2+/'
Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut -
Keluaran
22
123
234
222
Pengelompokan
Parentheses ()digunakan untuk pengelompokan dan karakter | digunakan sebagai alternatif. Misalnya, ekspresi reguler berikut cocok dengan baris yang berisi keduanyaApple Juice or Apple Cake.
Contoh
[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk
'/Apple (Juice|Cake)/'
Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -
Keluaran
Apple Juice
Apple Cake