其他分享
首页 > 其他分享> > SED命令

SED命令

作者:互联网

SED命令

SED命令

目录

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等

单行模式空间

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数

动作

[root@localhost ~]# cat nbr 
1
2
3
//a,新增
[root@localhost ~]# sed '3a4' nbr  #在第3行下添加4
1
2
3
4
[root@localhost ~]# sed '/3/a4' nbr  #在匹配3的下一行添加4
1
2
3
4

//c,取代
[root@localhost ~]# sed '1c2' nbr   #将第一行取代为2
2
2
3
[root@localhost ~]# sed '/1/c2' nbr  #匹配参数1取代为2
2
2
3

//d,删除
[root@localhost ~]# sed '3d' nbr   #删除第三行
1
2
[root@localhost ~]# sed '/1/d' nbr   #匹配参数1删除
2
3

//i,插入
[root@localhost ~]# sed '3i3' nbr  #在第三行插入3
1
2
3
3
[root@localhost ~]# sed '/1/i1' nbr  #匹配参数的前一行插入1
1
1
2
3

//p,打印
[root@localhost ~]# sed -n '1p' nbr  #打印第一行
1
[root@localhost ~]# sed -n '/3/p' nbr  #打印指定参数3
3


[root@localhost ~]# cat nbr 
1
22
333

//s,取代
#将匹配到的1取代为3
[root@localhost ~]# sed 's/1/3/' nbr
3
22
333
#当一行出现多个相同的参数,就会出现只能取代一个的问题
[root@localhost ~]# sed 's/3/2/' nbr 
1
22
233

//g 行内全面替换
#想要讲此行的所有相同的参数都取代,需要加上g
[root@localhost ~]# sed 's/3/2/g' nbr 
1
22
222

//n
#匹配参数1下面的所有行打印出来
[root@localhost ~]# sed -n '/1/n;p' nbr  
22
333


[root@localhost ~]# cat nbr 
1   a
22  ab
333 abc
//y
#将第二和第三行的a换成A,c换成B
[root@localhost ~]# sed '2,3y/ac/AB/' nbr 
1   a
22  Ab
333 AbB

多行模式空间

示例:

[root@localhost ~]# cat nbr 
here are examples of the UNIX
System. Where UNIX
System appears, it should be the UNIX
Operating System.
[root@localhost ~]# sed '/UNIX$/{N;/\nSystem/s// Operating &/;P;D}' nbr 
here are examples of the UNIX Operating 
System. Where UNIX Operating 
System appears, it should be the UNIX
Operating System.
命令 缩写 功能
Hold h 将模式空间的内容复制到保持空间
Hold H 将模式空间的内容追加到保持空间
Get g 将保持空间的内容追复制模式空间
Get G 将保持空间的内容追追加模式空间
Exchange x 交换保持空间和模式空间的内容

示例:

[root@localhost ~]# cat 123 
1
2
11
22
111
222

#匹配有1的行,h将将模式空间的内容追加到保持空间,d删除模式空间的内容
[root@localhost ~]# sed '/1/{h;d}' 123 
2
22
222

此时
模式空间:
空
保持空间:
1
11
111

#匹配有2的行,G将保持空间的内容追加到模式空间
[root@localhost ~]# sed '/1/{h;d};/2/{G}' 123 
2
1
22
11
222
111

此时
模式空间:
2
1
22
11
222
111

标签:22,nbr,命令,sed,空间,SED,root,localhost
来源: https://www.cnblogs.com/nie123/p/16698500.html