Trình chỉnh sửa luồng - Chi nhánh

Các nhánh có thể được tạo bằng lệnh t. Cáctlệnh chỉ nhảy đến nhãn nếu lệnh thay thế trước đó thành công. Chúng ta hãy lấy ví dụ tương tự như trong chương trước, nhưng thay vì in một dấu gạch ngang (-), bây giờ chúng ta in bốn dấu gạch nối. Ví dụ sau minh họa việc sử dụngt chỉ huy.

[jerry]$ sed -n ' 
h;n;H;x 
s/\n/, / 
:Loop 
/Paulo/s/^/-/ 
/----/!t Loop 
p' books.txt

Khi đoạn mã trên được thực thi, nó sẽ cho ra kết quả như sau.

A Storm of Swords, George R. R. Martin 
The Two Towers, J. R. R. Tolkien 
----The Alchemist, Paulo Coelho 
The Fellowship of the Ring, J. R. R. Tolkien 
----The Pilgrimage, Paulo Coelho 
A Game of Thrones, George R. R. Martin

Trong ví dụ trên, hai lệnh đầu tiên là tự giải thích. Lệnh thứ ba xác định nhãnLoop. Lệnh thứ tư thêm dấu gạch ngang (-) nếu dòng chứa chuỗi "Paulo" vàt lệnh lặp lại thủ tục cho đến khi có bốn dấu gạch nối ở đầu dòng.

Để cải thiện khả năng đọc, mỗi lệnh SED được viết trên một dòng riêng biệt. Nếu không, chúng ta có thể viết SED một lớp như sau:

[jerry]$ sed -n 'h;n;H;x; s/\n/, /; :Loop;/Paulo/s/^/-/; /----/!t Loop; p' books.txt

Khi đoạn mã trên được thực thi, nó sẽ cho ra kết quả như sau.

A Storm of Swords, George R. R. Martin 
The Two Towers, J. R. R. Tolkien 
----The Alchemist, Paulo Coelho 
The Fellowship of the Ring, J. R. R. Tolkien 
----The Pilgrimage, Paulo Coelho 
A Game of Thrones, George R. R. Martin