+ -
当前位置:首页 → 问答吧 → 字符串替换

字符串替换

时间:2011-07-18

来源:互联网

cat a.txt
<item>
    12345(abc)
....

我想把<item>行下的内容替换成12345(mmm),有个问题就是12345(abc) 可能是12345不包含(abc)部分,我不想用if判断,有没有比较直接的方法啊?

替换我这样用 sed -i "/<item>/{n;s/\(^.*$\)/\1(mmm)/};" a.txt

作者: lzx4456   发布时间: 2011-07-18

回复 lzx4456


有点乱,(abc) 换不换吧?

作者: 南极雨   发布时间: 2011-07-18

回复 lzx4456
  1. echo '<item>
  2.     12345(abc)
  3. ....

  4. <item>
  5.     12345
  6. ....

  7. ' | sed -r "/<item>/{n;s/(\(.*\))?$/(mmm)/};"
  8. <item>
  9.     12345(mmm)
  10. ....

  11. <item>
  12.     12345(mmm)
  13. ....
复制代码

作者: yinyuemi   发布时间: 2011-07-18

回复 南极雨


    两种情况
12345(abc) -> 12345(mmm)
  12345 -> 12345(mmm)
就是说我不知道<item>下那行到底有没有(),有的话替换内容, 没有的话,添加

作者: lzx4456   发布时间: 2011-07-18

回复 yinyuemi


    多谢3楼,问题解决了

作者: lzx4456   发布时间: 2011-07-18

热门下载

更多