sed用条件替换字符串

jas*_*ing 3 unix sed

我有一个文件包含几行,每行的格式都是这样的

2011-07-10 condition hhh aaa: value bbb
2011-07-10 condition ccc aaa: value bbb
Run Code Online (Sandbox Code Playgroud)

我想用SED找到字符串值,这是与"AAA"和"BBB",并替换为"gotit"的基础上,继条件的字符串是CCC的条件.在sed之后,这个文件变成了

  2011-07-10 condition hhh aaa: value bbb
  2011-07-10 condition ccc aaa: gotit bbb
Run Code Online (Sandbox Code Playgroud)

Man*_*y D 5

鉴于我对sed/regex的了解有限:

sed 's/\(condition ccc.*aaa: \).*\( bbb$\)/\1gotit\2/' file
Run Code Online (Sandbox Code Playgroud)

  • 很公平,试试这个:`sed's/\(条件ccc.*aaa:\).*\(bbb $ \)/\1gotit\2 /'file` (4认同)