请问SED里括号()的作用

碰到一个例子
sed  's/(love)able/lrs/' file


原文file 内容
loveable
-------------------------
执行之后输出
loveable

这是为什么? 一点变化没有呢


{:3_182:} {:3_182:} {:3_182:}

作者: h200952709   发布时间: 2011-06-09

因为没有替换成功,所示直接是输出pattern space的内容。

作者: L_kernel   发布时间: 2011-06-09

本帖最后由 xiaopan3322 于 2011-06-09 12:09 编辑

()被当成元字符作匹配用了
try:
sed  's/\(love\)able/lrs/' file

作者: xiaopan3322   发布时间: 2011-06-09

回复 xiaopan3322


    这个我还真试过了- - 但是没用 相当于直接去掉括号的替换了
   输出的是lrs

作者: h200952709   发布时间: 2011-06-09

回复 L_kernel


    怎么能替换成功?

作者: h200952709   发布时间: 2011-06-09

回复 h200952709


    or
sed -r  's/(love)able/lrs/' file

作者: pcuer   发布时间: 2011-06-09

回复 pcuer


    No,it cannot afford me ,either.


    where is the correct answer?

作者: h200952709   发布时间: 2011-06-09

问题都不提清楚,还要怪别人没回答对,哎。

sed 's/\(love\)able/\1lrs/'
sed 's/love\(able\)/lrs\1/'

总有一款适合你

作者: ly5066113   发布时间: 2011-06-09



QUOTE:
回复  xiaopan3322


    这个我还真试过了- - 但是没用 相当于直接去掉括号的替换了
   输出的是lrs
h200952709 发表于 2011-06-09 12:16




    昏倒了,你直接说你想干嘛?
    这样?
  1. sed 's/\(love\)able/\1lrs/'
复制代码

作者: xiaopan3322   发布时间: 2011-06-09

回复 xiaopan3322


    我只想问括号的作用 为什么介绍里就说那么写 是把loveable换成lovers了?
   纳闷……

作者: h200952709   发布时间: 2011-06-09