我有一个文件包含几行,每行的格式都是
2011-07-10 condition hhh aaa: value bbb
2011-07-10 condition ccc aaa: value bbb
我想使用sed来查找值字符串,它位于“aaa:”和“bbb”之间,并根据字符串跟随条件为ccc的条件替换为“gotit”。在sed之后,该文件变为
2011-07-10 condition hhh aaa: value bbb
2011-07-10 condition ccc aaa: gotit bbb
答案 0 :(得分:5)
鉴于我对sed / regex的了解有限:
sed 's/\(condition ccc.*aaa: \).*\( bbb$\)/\1gotit\2/' file
答案 1 :(得分:2)
更合乎逻辑:
sed '/ccc/{ s/\(.*aaa: \).*\( bbb\)/\1gotit\2/g }' inputfile
sed
仅在包含ccc