本章目录
1. sed 工具概述
1.1 sed 命令常见用法
1.2 sed 命令选项
2. 用法实例
2.1 查看文本行
2.2 删除
2.3 替换
2.4 插入与添加
sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。
sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务。
sed 的工作流程主要包括读取、执行和显示三个过程。
- sed 编辑器
sed 是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
sed 编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。
- sed [选项] '操作' 参数1,参数2,参数3
- sed -e '操作' 文件1 ,文件2
- sen -n -e '操作' 文件1 ,文件2
- sed -i -e '操作' 文件1 ,文件2
- sed [选项] -f scriptfile 参数1,参数2,参数3
- sed -f 脚本文件 文件1,文件2
- sed -e 'n{
操作1
操作2
...
}' 文件1,文件2
-e 或 --expression= |
表示用指定命令或者脚本来处理输入的文本文件,执行两条命令时添加,执行一条时一般忽略 |
-f 或 --file= | 表示用指定的脚本文件来处理输入的文本文件 |
-h 或--help | 显示帮助 |
-n、--quiet 或 silent | 表示仅显示处理后的结果 |
-i | 直接编辑文本文件 |
a | 增加,在当前行的下面增加一行指定内容 |
c | 替换,将指定的“行”替换为指定内容 |
d | 删除,删除选定的行 |
i | 插入,在选定行上面插入一行指定内容 |
p |
打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容; 如果有非打印字符,则以 ASCII 码输出,其通常与 “ -n ” 选项一起使用 |
s | 替换,替换指定字符 |
y | 字符转换,用 y 替换时,新字符与旧字符长度一定要相同 |
= | 打印行号 |
l | 打印数据流中的文本和不可打印的 ASCII 码,比如结束符 $ 制表符 \t |
- 数字:表明新字符将替换第几处匹配的结果,默认为1
- g: 表明新字符会替换所有匹配的地方
- w文件:将替换结果保存到文件中
- H:剪切
- G:粘贴
-