5.1. 简介

5.1.1. 什么是 sed?

流编辑器用于对从文件或管道读取的文本执行基本转换。结果会发送到标准输出。 sed 命令的语法没有输出文件规范,但可以使用输出重定向将结果保存到文件。编辑器不会修改原始输入。

sed 与其他编辑器(如 vied)的区别在于它能够过滤从管道馈送获取的文本。在 sed 运行时,您无需与其交互;这就是为什么 sed 有时被称为批处理编辑器。此功能允许在脚本中使用编辑命令,大大简化了重复的编辑任务。当面临在大量文件中替换文本时, sed 是一个很大的帮助。

5.1.2. sed 命令

sed 程序可以使用正则表达式执行文本模式替换和删除,就像 grep 命令使用的那些一样;请参阅第 4.2 节

编辑命令类似于 vi 编辑器中使用的命令

表 5-1. Sed 编辑命令

命令结果
a\在当前行下方追加文本。
c\用新文本更改当前行中的文本。
d删除文本。
i\在当前行上方插入文本。
p打印文本。
r读取文件。
s搜索和替换文本。
w写入文件。

除了编辑命令外,您还可以为 sed 提供选项。下表概述了这些选项

表 5-2. Sed 选项

选项效果
-e SCRIPT将 SCRIPT 中的命令添加到处理输入时要运行的命令集中。
-f将 SCRIPT-FILE 文件中包含的命令添加到处理输入时要运行的命令集中。
-n静默模式。
-V打印版本信息并退出。

sed 信息页包含更多信息;我们在此仅列出最常用的命令和选项。