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