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	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后面的内容。

原文地址:https://www.cnblogs.com/dynmi/p/13765290.html