Akış Düzenleyici - Kalıp Aralığı

Önceki bölümde, SED'in bir adres aralığını nasıl işlediğini öğrendik. Bu bölüm, SED'in bir düzen aralığını nasıl ele aldığını kapsar. Bir desen aralığı, basit bir metin veya karmaşık bir normal ifade olabilir. Bir örnek ele alalım. Aşağıdaki örnek, yazar Paulo Coelho'nun tüm kitaplarını yazdırmaktadır.

[jerry]$ sed -n '/Paulo/ p' books.txt

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

3) The Alchemist, Paulo Coelho, 197 
5) The Pilgrimage, Paulo Coelho, 288

Yukarıdaki örnekte, SED her satırda çalışır ve yalnızca Paulo dizesiyle eşleşen satırları yazdırır.

Bir model aralığını bir adres aralığı ile de birleştirebiliriz. Aşağıdaki örnek, Alchemist'in ilk eşleşmesinden beşinci satıra kadar olan satırları yazdırır.

[jerry]$ sed -n '/Alchemist/, 5 p' books.txt

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

3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288

Desenin ilk geçtiği yeri bulduktan sonra tüm satırları yazdırmak için Dollar ($) karakterini kullanabiliriz. Aşağıdaki örnek, The modelinin ilk oluşumunu bulur ve dosyadan kalan satırları hemen yazdırır

[jerry]$ sed -n '/The/,$ p' books.txt

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

2) The Two Towers, J. R. R. Tolkien, 352 
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
5) The Pilgrimage, Paulo Coelho, 288 
6) A Game of Thrones, George R. R. Martin, 864

Virgül (,) operatörünü kullanarak birden fazla desen aralığı da belirtebiliriz. Aşağıdaki örnek, Two ve Pilgrimage modelleri arasında var olan tüm çizgileri yazdırır.

[jerry]$ sed -n '/Two/, /Pilgrimage/ p' books.txt

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

2) The Two Towers, J. R. R. Tolkien, 352 
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288

Ek olarak, artı (+) operatörünü bir model aralığı içinde kullanabiliriz. Aşağıdaki örnek, İki deseninin ilk oluşumunu bulur ve bundan sonraki 4 satırı yazdırır.

[jerry]$ sed -n '/Two/, +4 p' books.txt

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

2) The Two Towers, J. R. R. Tolkien, 352 
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288 
6) A Game of Thrones, George R. R. Martin, 864

SED'i tanımanız için burada sadece birkaç örnek verdik. Kendi başınıza birkaç örnek deneyerek her zaman daha fazlasını öğrenebilirsiniz.