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