您的位置:首页 > 运维架构 > Linux

Linux-sed命令(基础和高级用法)

2017-09-01 18:39 337 查看
1、sed是流编译器,是文本处理非常常用的工具,也是使用正则表达式进行匹配,默认为基准模式。

基本格式为:

(1)sed option 'script' file 

其中script为:/pattern/action        //pattern为正则表达式,action为编辑操作。

如果没有pattern,则对所有行进行action操作。

(2)sed option -f scriptfile file

从scriptfile文件读取命令,对file文件进行操作。

2、sed的流程图:



3、action:

(1)p:打印匹配到的行。

(2)d:删除匹配到的行。

(3)/pattern/s/pattern1/pattern2/

:找到匹配到的行,将该行的第一个匹配的字符串1替换成2。

(4)/pattern/s/pattern1/pattern2/g:将该行所有匹配的都进行替换。

4、option选型:

(1)-n:只显示匹配到的。

(2)-i:做的操作会修改原文件。

(3)-e:执行多次命令,即多次编译。

5、定址:

(1)‘3p’:打印第3行。

(2)‘3,5p’:打印3到行

(3)‘/^e/,/^m/p’:打印以e开头的那一行到以m开头的那一行。



6、sed的高级用法:

sed有模式空间和保持空间,保持空间在默认情况下是不会被使用到的,只有在某些命令下才会被使用。

(1)模式空间:进行文本处理。

(2)保持空间:把数据临时存放在这里。

(3)action:

g:将保持空间的内容拷贝到模式空间中,原模式空间将被清零。

G:将保持空间的内容追加到模式空间\n之后。

h:将模式空间的内容拷贝到保持空间中,原保持空间将被清零。

H:将模式空间的内容追加到保持空间\n之后。

d:删除模式空间中的所有行,并读入下一行。

D:删除模式空间的第一行,不读入下一行。

x:交换内容

n:读取下一行到模式空间。

N:将下一行追加到模式空间后。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式 sed