sed是流编辑器,每次从文本读出一行放入pattern space(模式空间)中,如果可以被pattern space内存空间匹配到,sed就会对其执行预定的编辑(替换,删除)然后输出至标准输出,不能被匹配直接标准输出。画一张图有利于理解。非交互式编辑器非交互式就是只能在命令行内完成对文本的操做

sed用法

sed 选项 ‘/pattern/动作’文件路径

sed常用选项

-n不输出模式空间内容到屏幕,被处理的行列出来

-e:进行多项编辑,对输入行应用多条sed命令时用

-f:直接把sed命令写进文件,-f就是执行文件内的sed命令

-r:支持正则表达式

-i:直接编辑源文件

sed常用的命令(编辑)

-d:删除

-a:新增,a的后面接字符串,加的字符串会下一行出现。

-i:插入,i后面接的字符串会出现在此行前出现。

-c:替换,把匹配到的行替换为指定的行。

-w:保存模式空间匹配到的行至指定文件。

-r:读取指定文件内容到当前文件被匹配到的行后面。

!:对没有匹配到的行进行编辑

-s:可以和正则表达式一起用,可以替换

示例:

1、在sed1文件第六行后添加一行,先看看原文件

2、被修改后的文件 动作a(在指定行后面加信息)

以行为单位进行增删

把sed1中4到6行删除  动作d(删除)

先cat sed1

在sed1第一行加上LPLPLP 动作i(在指定行前面加上指定信息)想在第几行前加就写ni

只列出1到3行

在第一行后面加上两行 \n用来换行

删除搜寻到的字符串,删除sed1中的bb

多点编辑把1-2行删除,把eeeeee替换为EEEEEE

动作c和s的的区别 c是全部替换  s是对行进行替换

在最后一行加上一行

只显示指定行(显示sed1中包含f的行)