AWK - Normal İfadeler

AWK, normal ifadeleri işlemede çok güçlü ve etkilidir. Basit normal ifadelerle bir dizi karmaşık görev çözülebilir. Herhangi bir komut satırı uzmanı, normal ifadelerin gücünü bilir.

Bu bölüm, uygun örneklerle standart normal ifadeleri kapsar.

Nokta

Satır sonu karakteri dışında herhangi bir tek karakterle eşleşir. Örneğin, aşağıdaki örnek eşleşirfin, fun, fan vb.

Misal

[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'

Yukarıdaki kodu çalıştırdığınızda aşağıdaki sonucu alırsınız -

Çıktı

fun
fin
fan

Satırın başlangıcı

Satırın başlangıcıyla eşleşiyor. Örneğin, aşağıdaki örnek desen ile başlayan tüm satırları yazdırır.The.

Misal

[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

There
Their

Yolun sonu

Satırın sonuyla eşleşiyor. Örneğin, aşağıdaki örnek harfle biten satırları yazdırırn.

Misal

[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'

Çıktı

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

fun
fin
fan

Karakter kümesini eşleştir

Birkaç karakterden yalnızca birini eşleştirmek için kullanılır. Örneğin, aşağıdaki örnek desenle eşleşirCall ve Tall Ama değil Ball.

Misal

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'

Çıktı

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Call
Tall

Özel set

Özel kümede, kırat köşeli parantez içindeki karakter kümesini geçersiz kılar. Örneğin, aşağıdaki örnek yalnızcaBall.

Misal

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

Ball

Değişiklik

Dikey çubuk, normal ifadelerin mantıksal olarak OR'lanmasına izin verir. Örneğin aşağıdaki örnek,Ball ve Call.

Misal

[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

Call
Ball

Sıfır veya Bir Oluşum

Önceki karakterin sıfır veya bir oluşumuyla eşleşir. Örneğin, aşağıdaki örnek eşleşirColour Hem de Color. Biz yaptıku isteğe bağlı bir karakter olarak kullanarak ?.

Misal

[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

Colour
Color

Sıfır veya Daha Fazla Oluşum

Önceki karakterin sıfır veya daha fazla oluşumuyla eşleşir. Örneğin, aşağıdaki örnek eşleşirca, cat, catt, ve bunun gibi.

Misal

[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

ca
cat
catt

Bir veya Daha Fazla Oluşum

Önceki karakterin bir veya daha fazla oluşumuyla eşleşir. Örneğin aşağıdaki örnek, bir veya daha fazla oluşumla eşleşir2.

Misal

[jerry]$ echo -e "111\n22\n123\n234\n456\n222"  | awk '/2+/'

Yukarıdaki kodu çalıştırdığınızda aşağıdaki sonucu alırsınız -

Çıktı

22
123
234
222

Gruplama

Parentheses ()gruplama ve karakter için kullanılır | alternatifler için kullanılır. Örneğin, aşağıdaki normal ifade, aşağıdakilerden birini içeren satırlarla eşleşir:Apple Juice or Apple Cake.

Misal

[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk 
   '/Apple (Juice|Cake)/'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

Apple Juice
Apple Cake