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