2


就像在我需要的主题中一样,我需要用星号 * 替换圆括号中的所有内容。.
我已经阅读了很多关于正则表达式的内容,但在这种情况下,圆括号很特别
,我很生气。
我收到了这样的文字

550 OU-001 (BAY0-MC2-F14) Unfortunately messages from xxx.xxx.xxx.xx 

所以应该是

550 OU-001 (*) Unfortunately messages from xxx.xxx.xxx.xx 

我试过这个

sed -e 's/\(([)]*\)/*/' file

但以这种方式只替换左括号。

550 OU-001 *BAY0-MC2-F14) Unfortunately messages from xxx.xxx.xxx.x

有人可以帮助我并向我解释解决方案吗?

干杯

4

4 回答 4

2

这有帮助吗?

sed 's/([^)]*/(*/g' file

用你的输入

kent$  echo "550 OU-001 (BAY0-MC2-F14) Unfortunately messages from xxx.xxx.xxx.xx"|sed  's/([^)]*/(*/g'
550 OU-001 (*) Unfortunately messages from xxx.xxx.xxx.xx
于 2013-03-26T14:09:40.397 回答
2

这个 sed 应该工作:

sed 's/([^)]*)/(*)/g'
于 2013-03-26T14:08:14.070 回答
1

试试这个sed命令-:

 sed 's/(.*)/(\*)/' file
于 2013-03-26T14:09:18.253 回答
0

这个 sed 有效:

sed 's/([^)]*)/(*)/g

它转变

foo (bar) baz (foobar) end

foo (*) baz (*) end
于 2013-03-26T14:12:36.933 回答