给定这样的一行:"hello my (name) is (user)
,我怎样才能删除所有'()'
使用sed?
我目前正在做的是使用视觉块突出显示该行,然后:s/(//g
一次又一次地为)
. 有没有办法(, )
在一个sed命令中同时删除两者?
我的最终目标是"hello my name is user"
给定这样的一行:"hello my (name) is (user)
,我怎样才能删除所有'()'
使用sed?
我目前正在做的是使用视觉块突出显示该行,然后:s/(//g
一次又一次地为)
. 有没有办法(, )
在一个sed命令中同时删除两者?
我的最终目标是"hello my name is user"
您可以使用字符类
[()]
作为正则表达式模式,并用空字符串替换模式以删除它们:所以:
g
修饰符对所有匹配执行操作,否则sed
将在第一个匹配后停止。你也可以用
tr -d '()' <infile
。您可以将括号内容保存在一个组中并替换为:
这将保存组 1 中括号内的所有内容(
[^)]*
仅匹配除1 之外的所有内容)
)并用它替换整个括号。局部地这样做g
意味着对行中的每一对括号都这样做。使用示例