sed命令分析

符号 阅读:180 2021-07-29 11:57:27 评论:0

sed是一种包括在所有unix平台(包括Linux)的轻量级编辑器。sed主要是用来将数据进行选取,替换,删除,新增的命令。

功能:字符串替换命令

格式:sed [选项] ‘[动作]’ 文件名

选项:

-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。不会修改文件的原始内容,只会将显示到屏幕
-e:允许对输入数据应用多条sed命令编辑
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:

a:追加,在当前行后添加一行或多行
c:行替换,用c后面的字符串替换原数据行
i:插入,在当期行前插入一行或多行。
d:删除,删除指定的行
p:打印,输出指定的行。
s:字符串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字符串/新字符串/g”(和vim中的替换格式类似)

示例:行数据操作

打印第二行,一定添加-n,如果不加-n会把所有内容输出,并且会出现重复行。

[[email protected] home]# sed '2p' student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed -n '2p' student.txt  
1   furong  F   88 
[[email protected] home]#  

删除

[[email protected] home]# cat student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '2d' student.txt  
ID  Name    gender  Mark 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '2,4d' student.txt //删除2-4行 
ID  Name    gender  Mark
[[email protected] home]# sed '2d' student.txt  
ID  Name    gender  Mark 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '2,4d' student.txt  
ID  Name    gender  Mark 
[[email protected] home]# sed '2a piaoliang jiushi renxing' student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
piaoliang jiushi renxing 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '2i piaoliang jiushi renxing' student.txt  
ID  Name    gender  Mark 
piaoliang jiushi renxing 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# cat student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]#  
[[email protected] home]# cat student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '4c cang bujige' student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
cang bujige 
[[email protected] home]# cat student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   70 
[[email protected] home]# sed '4s/70/100/g' student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   100 
[[email protected] home]# sed -i '4s/70/100/g' student.txt  
[[email protected] home]# cat student.txt  
ID  Name    gender  Mark 
1   furong  F   88 
2   fengjie F   60 
3   cang    F   100 
[[email protected] home]# sed -e 's/furong//g;s/fengj//g' student.txt  
ID  Name    gender  Mark 
1       F   88 
2   ie  F   60 
3   cang    F   100 

标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号