- Sed 教程
- Sed - 首页
- Sed - 概述
- Sed - 环境
- Sed - 工作流
- Sed - 基本语法
- Sed - 循环
- Sed - 分支
- Sed - 正则表达式缓冲区
- Sed - 正则表达式范围
- Sed - 基本命令
- Sed - 特殊字符
- Sed - 字符串
- Sed - 管理正则表达式
- Sed - 正则表达式
- Sed - 实用食谱
- Sed 实用资源
- Sed - 快速指南
- Sed - 实用资源
- Sed - 讨论
流编辑器 - 分支
可以使用 t 命令创建分支。当之前的替换命令成功时,t 命令才跳转到标签。让我们举出与前一章中相同的示例,但是现在我们不打印单个连字符 (-),而是打印四个连字符。以下示例说明了 t 命令的用法。
[jerry]$ 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
在上述示例中,前两个命令不言自明。第三个命令定义了一个标签 Loop。如果行包含字符串 "Paulo",则第四个命令会前置连字符 (-),而 t 命令会重复此过程,直到行首有四个连字符为止。
为了提高可读性,每个 SED 命令都写在单独的一行中。否则,我们可以编写一行 SED,如下所示
[jerry]$ 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
广告