Linux命令sed
sed流编辑器:Stream EDitorsed行编辑器,使用sed,将文件的行加载到内存,符合sed模式空间的显示到屏幕上,sed默认不编辑文件,仅对模式空间的数据处理,处理结束后,将符合模式空间的行打印到屏幕上
sed模式空间
sed 'AddressCommand' file ...
options: 选项,如 -n静默模式,只显示符合条件的行,不显示模式空间的内容
Address: 指的是文件行的地址,如第一行到第10行
Command: 指的是对文件行的操作,删除,打印等
file: 指的是文件的路径
三个点: 可以接多个文件
options
1、-n
静默模式,只显示符合条件的行,不显示模式空间的内容
2、-p
3、-e
-e 'script' -e 'script' 引号里的内容,-e 可以指定多个
4、-r
表示使用扩展的表达式
Address
1、Startline,Endline
startline,开始行,默认是从第一行开始
endline, 结束行,$表示最后一行
2、/RegExp正则表达式/
正则表达式匹配到的行,如 /^root/ 以root开始的行
3、/模式1/,/模式2/
第一次被模式1匹配到的行开始,至第一次被模式2匹配到的行结束中间的所有行
4、LineNumber 行号
5、StartLine,+N
从startline开始,向后N行,共N+1行
Command
1、d:删除符合条件的行
2、p:显示符合条件的行
3、a \string:在指定行的后面新加一行,内容为string
4、 i \string:在指定行的前面新加一行,内容为string
5、r file文件路径:将指定文件的内容,添加到符合条件的行的后面
http://i2.运维网.com/images/blog/201811/15/ac2da19e9e8db210d4984f126409c32b.png
6、w file文件路径:将指定范围的内容,另存至指定的文件中
http://i2.运维网.com/images/blog/201811/15/24484aa917dbb0c198eabc1131bc7d4f.png
s:查找并替换
s/查找/替换/修饰符
s/查找/替换/g
s#查找#替换#g
s@查找@替换@g
修饰符:
g 全局替换
i 忽略大小写
例如使用s###g更改selinux配置文件
http://i2.运维网.com/images/blog/201811/15/a603a2d62c369ad8b0dfc9a340f4ba53.png
s###g支持后项引用(将文本中的like->liker love->lover)
&代表查找到的内容,就替换为查找到的+r
http://i2.运维网.com/images/blog/201811/15/2f030a5a114c1015573010a0b34c00e1.png
http://i2.运维网.com/images/blog/201811/15/4275cf9484cf345cee26856118144f68.png
sed命令练习
http://i2.运维网.com/images/blog/201811/15/a6fcc49270e995ffdf8f08d5dabaa313.png
-n静默模式,不使用-n,以UUID开始的行会打印屏幕上两次,第一次是模式空间输出,第二次是p 输出
http://i2.运维网.com/images/blog/201811/15/d9a1eea0eaceee4b65d9bfc0e553bf7f.png
http://i2.运维网.com/images/blog/201811/15/9f2bbddf6d8761b0e792625c00de82af.png
删除文件的前两行,但不修改原文件
http://i2.运维网.com/images/blog/201811/15/5f64133088807ba710debc51cc7618d6.png
删除文件的前两行,修改原文件
http://i2.运维网.com/images/blog/201811/15/5999a747b968d6dc927692ff5e54da81.png
sed '2,+2d' zmg.txt
http://i2.运维网.com/images/blog/201811/15/2fefdd88690a4a69a1718b6277546fe6.png
sed '1,2a \hello' zmg.txt
http://i2.运维网.com/images/blog/201811/15/673e377a61e5a30262f6082da2547af3.png
sed '1,2i \hello' zmg.txt
http://i2.运维网.com/images/blog/201811/15/226c440cd1c7e80d335201dade8e35f8.png
页:
[1]