Editor de fluxo - ramos
Ramificações podem ser criadas usando o comando t. oto comando salta para o rótulo apenas se o comando substituto anterior for bem-sucedido. Tomemos o mesmo exemplo do capítulo anterior, mas em vez de imprimir um único hífen (-), agora imprimimos quatro hífens. O exemplo a seguir ilustra o uso dot comando.
[jerry]$ sed -n '
h;n;H;x
s/\n/, /
:Loop
/Paulo/s/^/-/
/----/!t Loop
p' books.txt
Quando o código acima for executado, ele produzirá o seguinte resultado.
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
No exemplo acima, os primeiros dois comandos são autoexplicativos. O terceiro comando define um rótuloLoop. O quarto comando acrescenta hífen (-) se a linha contiver a string "Paulo" e ot O comando repete o procedimento até que haja quatro hifens no início da linha.
Para melhorar a legibilidade, cada comando SED é escrito em uma linha separada. Caso contrário, podemos escrever um SED de uma linha da seguinte maneira:
[jerry]$ sed -n 'h;n;H;x; s/\n/, /; :Loop;/Paulo/s/^/-/; /----/!t Loop; p' books.txt
Quando o código acima for executado, ele produzirá o seguinte resultado.
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