linux中文本批处理命令sed的使用

     sed源自英语"stream editor"的缩写,意思流编辑器。sed是linux常见的命令行程序。sed 用来把文档里面的文字经过一系列编辑命令转换为另一种格式输出。

    进入当前目录/home/robot,vi aaa.txt ,内容如下:

11111111111111
22222222222222
33333333333333
44444444444444
55555555555555
11111222223333
22223333355555

sed用法1:列出文件制定行的内容

[robot@hadoop103 ~]$ sed -n '2,4p' aaa.txt   #打印aaa.txt文件中的第二行到第四行。
22222222222222
33333333333333
44444444444444

   参数说明:    -n(关闭自动输出),p(表示打印,没有p报错)

sed用法2:批量替换文本中某个字段

[robot@hadoop103 ~]$ sed 's/11111/aaaa/g'  aaa.txt    #将aaa.txt中11111字段替换成aaaa
aaaaaaaa1111
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555

    s/替换字段/替换后字段/g     有d的模式:将所有匹配"替换字段"的字符串转换成"替换后字段" 

    s/替换字段/替换后字段/     无g 将匹配"替换字段"的行转换成"替换文字",只替换一次

[robot@hadoop103 ~]$ sed 's/11111/aaaa/'  aaa.txt 
aaaa111111111    #后面的111111111就没有被替换成aaaa,区别上面带g的
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555

   注:sed默认不会修改原始文件,但-i 编辑原文件(此选项慎用,如果使用则原文件就会被修改,无法恢复)。

[robot@hadoop103 ~]$ cat aaa.txt   #前面虽然用了sed替换,但是文件并没有被替换,只是显示的数据被替换了。
11111111111111
22222222222222
33333333333333
44444444444444
55555555555555
11111222223333
22223333355555

  下面添加了-i参数,sed修改了原始文件,将批处理的结果更新到文件中

[robot@hadoop103 ~]$ sed  -i  's/11111/aaaa/g'  aaa.txt    #增加了-i参数
[robot@hadoop103 ~]$ cat aaa.txt    #aaa.txt文件内容被更新了
aaaaaaaa1111  
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
2aaaa11132aaaa111

sed用法3:批处理删除文本中某行,或者特定内容的行

[robot@hadoop103 ~]$ sed '2d' aaa.txt    #1.删除第二行数据
aaaaaaaa1111
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555

  参数:d,表示删除,加在行后

  注意:同样,如果sed 后不加-i,所有删除操作不会更新到原始文件中,一旦加了-i就会更新文件,不可逆

[robot@hadoop103 ~]$ cat aaa.txt 
aaaaaaaa1111
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
2aaaa11132aaaa111
[robot@hadoop103 ~]$ sed '/22/d'  aaa.txt   #2.删除含有22字段的行
aaaaaaaa1111
33333333333333
44444444444444
55555555555555
2aaaa11132aaaa111
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是你的春哥!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值