Trình chỉnh sửa luồng - Phạm vi mẫu
Trong chương trước, chúng ta đã tìm hiểu cách SED xử lý một dải địa chỉ. Chương này trình bày cách SED quản lý một phạm vi mẫu. Một phạm vi mẫu có thể là một văn bản đơn giản hoặc một biểu thức chính quy phức tạp. Chúng ta hãy lấy một ví dụ. Ví dụ sau đây in tất cả các cuốn sách của tác giả Paulo Coelho.
[jerry]$ sed -n '/Paulo/ p' books.txtKhi thực thi đoạn mã trên, bạn nhận được kết quả sau:
3) The Alchemist, Paulo Coelho, 197 
5) The Pilgrimage, Paulo Coelho, 288Trong ví dụ trên, SED hoạt động trên mỗi dòng và chỉ in những dòng phù hợp với chuỗi Paulo.
Chúng tôi cũng có thể kết hợp dải mẫu với dải địa chỉ. Ví dụ sau in các dòng bắt đầu bằng trận đầu tiên của Nhà giả kim cho đến dòng thứ năm.
[jerry]$ sed -n '/Alchemist/, 5 p' books.txtKhi thực thi đoạn mã trên, bạn nhận được kết quả sau:
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288Chúng ta có thể sử dụng ký tự Dollar ($) để in tất cả các dòng sau khi tìm thấy lần xuất hiện đầu tiên của mẫu. Ví dụ sau đây tìm lần xuất hiện đầu tiên của mẫu The và in ngay các dòng còn lại từ tệp
[jerry]$ sed -n '/The/,$ p' books.txtKhi thực thi đoạn mã trên, bạn nhận được kết quả sau:
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, 864Chúng tôi cũng có thể chỉ định nhiều hơn một phạm vi mẫu bằng cách sử dụng toán tử dấu phẩy (,). Ví dụ sau đây in tất cả các dòng tồn tại giữa các mẫu Hai và Hành hương.
[jerry]$ sed -n '/Two/, /Pilgrimage/ p' books.txtKhi thực thi đoạn mã trên, bạn nhận được kết quả sau:
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, 288Ngoài ra, chúng ta có thể sử dụng toán tử dấu cộng (+) trong một phạm vi mẫu. Ví dụ sau tìm lần xuất hiện đầu tiên của mẫu Hai và in 4 dòng tiếp theo sau đó.
[jerry]$ sed -n '/Two/, +4 p' books.txtKhi thực thi đoạn mã trên, bạn nhận được kết quả sau:
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, 864Chúng tôi chỉ cung cấp ở đây một số ví dụ để bạn làm quen với SED. Bạn luôn có thể tìm hiểu thêm bằng cách tự mình thử một vài ví dụ.