linux中使用sed命令

准备

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\the\THE' 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\后面的内容。

posted @ 2020-10-03 20:20  dynmi  阅读(126)  评论(0编辑  收藏  举报