准备
sed是“stream editor”的简称。sed命令有两种玩法,一个是直接在命令行使用,一个是写成seq脚本使用。
sed命令行
sed命令格式如下:
sed [options] [command] [files]
例如:
$ sed -f scriptf.sed 1.txt > 2.txt
options说明
-n 不输出全部文件内容,只输出被编辑行内容
-p 打印编辑行
-c 使用多项编辑
-e 默认选项,即单项命令
-f 调用sed脚本文件
command说明
p 打印匹配行
= 显示文件行号
a 在定位行号后附加新文本信息
i 在定位行号后插入新文本信息
d 删除定位行
c 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 立即退出 或 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
删除某行
$ sed '1,2d' article.txt > article.txt
\ 删除article.txt文件中的第1行和第2行
替换文本
例如替换the为THE:
$ sed 's heTHE' article.txt > article.txt
sed脚本
追加文本
追加操作格式如下:
[address] a
text1
text2
...
textn
address指定一个模式或行号,定位新文本的附加位置,sed对a后的文本进行追加操作。
插入文本
插入操作格式如下:
[address] i
text1
text2
...
textn
将i后面几行的内容插入到指定位置。
修改文本
格式如下:
[address] c
text1
text2
...
textn
将匹配的模式行修改为c后面的内容。