+ -
当前位置:首页 → 问答吧 → perl能实现和sed中替换一样的功能吗?

perl能实现和sed中替换一样的功能吗?

时间:2010-10-20

来源:互联网

本帖最后由 li_000828 于 2010-10-20 15:44 编辑

今天看到sed有这样一个功能,比如有一个文本,内容如下:
aa   aa    aa
aa   cc     aa   dd


我只想替换掉第二个,用如下方法:
sed  's/aa/mm/2'  file
结果是:aa    mm    aa
            aa    cc       mm    dd

请教各位大侠,用perl能不能实现?

作者: li_000828   发布时间: 2010-10-20

perl -pne 's/$1\s(aa)/mm/' file  这个试试

作者: liyangole   发布时间: 2010-10-20

回复 liyangole
   请问一下$1和(aa)之间为什么要加\s,\s表示匹配空白,而第二行的第二个匹配之间有字符呀。
  我这里测试能成功。

作者: li_000828   发布时间: 2010-10-20

回复 li_000828


    可能是正则的贪婪性所致吧。我在测试改过看看!

作者: liyangole   发布时间: 2010-10-20

回复 liyangole


  还是多谢热心帮忙!

作者: li_000828   发布时间: 2010-10-20