Unix Sed命令实用单行脚本

需积分: 6 7 下载量 136 浏览量 更新于2024-11-15 收藏 408KB PDF 举报
"sed one line pdf" 本文将详细探讨在Linux或Unix环境中,使用经典文本处理工具sed执行单行命令的技巧。sed(流编辑器)是一种强大的文本操作工具,能够对输入流(标准输入、文件或者管道)进行读取、处理,并将结果输出到标准输出。"sed one line"通常指的是利用一行命令来完成特定的文本处理任务。 1. **基本语法** sed命令的基本格式是: ``` sed [选项] '命令' 文件 ``` 其中,选项用于设置sed的工作模式,命令是你要执行的操作,文件是你想要处理的数据源。 2. **删除空行** ``` sed '/^$/d' ``` 这行命令会删除所有空白行。`/^$/` 是一个正则表达式,匹配的是没有任何字符的行(即空行),`d` 指令则告诉sed删除这些匹配的行。 3. **追加行** ``` sed 'G' ``` 这个命令会在每行末尾添加一个换行符和上一行的内容,实现每一行的复制。 4. **合并两行** ``` sed 'N;N;D' ``` 这个命令将连续的两行合并成一行。`N` 命令将下一行内容追加到模式空间,第二个`N`则是将再下一行内容也加入,然后`D`命令删除模式空间的首行,实现两行的合并。 5. **替换匹配的行** ``` sed 's/old/new/g' ``` `s` 是替换命令,`old` 是要查找的模式,`new` 是替换后的文本,`g` 是全局替换标志,表示替换每一行中所有的匹配项。 6. **条件处理** ``` sed '/pattern/{command1;command2}' ``` 当行匹配到`pattern`时,执行`command1`和`command2`。例如: ``` sed '/regex/{n;d}' ``` 这行命令会找到包含`regex`的行,然后跳过当前行(`n`),并删除下一行(`d`)。 7. **打印匹配行的上下文** ``` sed -n '/pattern/{p;n;p}' ``` `-n` 选项使sed不自动打印每一行,`p` 打印匹配行,`n` 获取下一行。这样可以打印出匹配行及其下一行。 8. **多行模式匹配** ``` sed '/start/,/end/p' ``` 该命令会打印从`start`到`end`(不包括`end`)之间的所有行。 9. **追加文本** ``` sed '/regex/a\新行内容' ``` `a` 命令用于在匹配`regex`的行后面添加新的内容。 10. **删除匹配行** ``` sed '/regex/d' ``` 删除所有包含`regex`的行。 这只是sed命令的一小部分功能展示,实际上sed提供了更多的功能,如插入、替换、删除、搜索、替换等,可以组合使用来实现复杂的文本处理任务。熟练掌握sed,对于日常的文本操作和脚本编写都极具价值。要深入了解sed,可以参考提供的链接资源,它们包含了更多实用的sed单行命令示例。