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.