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.