Editor Aliran - Rentang Pola

Di bab sebelumnya, kita telah mempelajari cara SED menangani rentang alamat. Bab ini membahas bagaimana SED menangani rentang pola. Rentang pola dapat berupa teks sederhana atau ekspresi reguler yang kompleks. Mari kita ambil contoh. Contoh berikut mencetak semua buku dari penulis Paulo Coelho.

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

Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut:

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

Dalam contoh di atas, SED beroperasi pada setiap baris dan hanya mencetak baris yang cocok dengan string Paulo.

Kami juga dapat menggabungkan rentang pola dengan rentang alamat. Contoh berikut mencetak baris yang dimulai dengan pertandingan pertama Alchemist hingga baris kelima.

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

Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut:

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

Kita dapat menggunakan karakter Dollar ($) untuk mencetak semua baris setelah menemukan pola yang pertama kali muncul. Contoh berikut menemukan kemunculan pertama pola The dan segera mencetak sisa baris dari file

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

Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut:

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

Kita juga bisa menentukan lebih dari satu rentang pola menggunakan operator koma (,). Contoh berikut mencetak semua garis yang ada di antara pola Dua dan Ziarah.

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

Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut:

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

Selain itu, kita bisa menggunakan operator plus (+) dalam rentang pola. Contoh berikut menemukan kemunculan pertama dari pola Dua dan mencetak 4 baris berikutnya setelah itu.

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

Saat menjalankan kode di atas, Anda mendapatkan hasil sebagai berikut:

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

Di sini kami hanya memberikan beberapa contoh agar Anda mengenal SED. Anda selalu dapat mengetahui lebih banyak dengan mencoba beberapa contoh sendiri.