sed使用杂谈

1.  关于打印。

无论命令中选择对哪些行执行命令,sed默认会打印每一行。

a) 对于不需要执行命令的行,sed打印当前行的原始内容。

b) 对于需要执行命令的行,在命令执行完成后,sed打印被命令编辑过后的当前行的内容。

c) 如果命令本身就是打印命令p,则执行命令的过程,就是打印当前行一次。而命令执行完成后,sed又会按照b)中的描述,再打印一次当前行。因此,当前行会被打印两次。

d) 可以使用-n选项关闭默认的打印。这样的话,只有匹配了p命令的行,才会被打印。

 

2. 仅修改第一个(第1个)匹配的行

[root@localhost tmp]# cat test.txt
Tom is a good boy.
Alice is a good girl.
Kitty is a good girl.

 

a)将第一个包含girl的行中的单词Alice替换为Allen

[root@localhost tmp]# cat test.txt | sed "1,/girl/s/Alice/Allen/"
Tom is a good boy.
Allen is a good girl.
Kitty is a good girl.

 

b) 将第一个包含girl的行替换为Ken is a good boy

[root@localhost tmp]# cat test.txt | sed  "1,/girl/c\                 
> Ken is a good boy"
Ken is a good boy
Kitty is a good girl.

本例的结果并不正确,不知道为什么。还望高人指点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值