Edytor strumienia - gałęzie

Gałęzie można tworzyć za pomocą polecenia t. Pliktpolecenie przeskakuje do etykiety tylko wtedy, gdy poprzednie polecenie zamiany zakończyło się pomyślnie. Weźmy ten sam przykład, co w poprzednim rozdziale, ale zamiast jednego łącznika (-), wypisujemy teraz cztery łączniki. Poniższy przykład ilustruje użyciet Komenda.

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

Wykonanie powyższego kodu da następujący wynik.

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

W powyższym przykładzie pierwsze dwa polecenia są oczywiste. Trzecie polecenie definiuje etykietęLoop. Czwarte polecenie dodaje myślnik (-) na początek, jeśli wiersz zawiera ciąg „Paulo” i znakt polecenie powtarza procedurę, aż na początku linii pojawią się cztery myślniki.

Aby poprawić czytelność, każde polecenie SED jest zapisywane w osobnym wierszu. W przeciwnym razie możemy napisać jednowierszową SED w następujący sposób:

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

Wykonanie powyższego kodu da następujący wynik.

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