可以使用 t 命令创建分支。仅当上一个命令成功时, t 命令才会跳转到标签。让我们以与上一章相同的示例为例,但是现在不打印单个连字符(-),而是打印四个连字符。以下示例说明了 t 命令的用法。
$sed -n ' h;n;H;x s/\n/,/ :Loop /Paulo/s/^/-/ /----/!t Loop p' books.txt
执行以上代码后,将产生以下输出。
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
为了提高可读性,每个SED命令都写在单独的行上。否则,我们可以编写一个单线SED,如下所示:
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