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