sed命令简介
sed全称为stream editor,即流编辑器。它擅长对文本进行逐行处理,能够实现文本替换、删除、插入、修改等多种操作。sed的强大之处在于它可以自动处理多行文本而无需人工手动干预 。
基本用法详解
命令格式
1、sed [选项] '命令' 文件
2、命令 | sed [选项] '命令'
选项列表
- −n:使用静默模式,只显示经过sed处理的行,否则会显示所有文本。
- −e:标识其后的命令为多条语句的集合,各语句通常使用分号分隔。
- −r:命令支持扩展的正则表达式。
- −i:直接修改文件的内容,否则只在终端显示处理结果。
- −f:执行sed命令脚本,f选项后为脚本文件名称。
命令列表
- −p:打印匹配的文本行。
- −a:在匹配的文本下一行插入内容。
- −i:在匹配的文本上一行插入内容。
- −s:替换匹配的字符串。
- −d:删除匹配的文件行。
使用示例
1、sed [选项] '匹配规则p' 文件:打印符合匹配规则的文本行。p命令通常与选项n连用,只显示处理过的文本行。
1.1、'行号p':打印指定行的内容,行号从1开始。

- '3p':打印第三行的内容。
1.2、'行号1p;行号2p;...':打印多行内容。

- '1p;3p':打印第一行和第三行的内容。
1.3、'起始行号,结束行号p':打印起始行号至结束行号间的所有内容。

- '1,3p':打印第一行至第三行的所有内容。
1.4、'/匹配字符串/p':打印含有匹配字符串的文本行。

- '/1986/p':打印含有字符串1986的文本行。
1.5、'/正则字符串/p':打印含有与正则匹配的字符串的文本行。若字符串为正则表达式,需要使用选项−r。

- "/'1986−[0−9]{2}−[0−9]{2}'$/p":打印以字符串'1986−2位数字−2位数字'结尾的文本行。
2、sed [选项] '匹配规则i 内容' 文件:在符合匹配规则的行前插入指定内容。
2.1、'行号i 内容':在指定的行号前插入指定内容。

- '3i Developer:':在第三行前插入内容Developer:。
2.2、'/字符串/i 内容':在含有字符串的行前插入指定内容。

- '/10003/i Developer:':在含有字符串10003的行前插入内容Developer:。
3、sed [选项] '匹配规则a 内容' 文件:在符合匹配规则的行后插入指定内容。
3.1、'行号a 内容':在指定的行号后插入指定内容。

- '3a Developer:':在第三行后插入内容Developer:。
3.2、'/字符串/a 内容':在含有字符串的行后插入指定内容。

- '/10003/a Developer:':在含有字符串10003的行后插入内容Developer:。
4、sed [选项] '匹配规则d' 文件:删除符合匹配规则的文本行。
4.1、'行号d':删除指定行的内容,行号从1开始。

- 3d:删除第三行的内容。
4.2、'行号1d;行号2d;...':删除多行内容。

- '1d;3d':删除第一行和第三行的内容。
4.3、'起始行号,结束行号d':删除起始行号至结束行号间的所有内容。

- '1,3d':删除第一行至第三行的所有内容。
4.4、'/匹配字符串/p':删除含有匹配字符串的文本行,可使用正则。

- "/'1986−[0−9]{2}−[0−9]{2}'$/p":删除以字符串'1986−2位数字−2位数字'结尾的文本行。
5、sed [选项] 's/目标字符串/替换字符串/' 文件:将文件中的目标字符串替换为新的字符串。通常与选项−n连用,只显示替换的行。

- 's/Parto/PARTO/':将字符串Parto替换为PARTO。
6、sed −i '命令' 文件:将命令的执行结果直接写入文件中。
