我正在处理一些在方括号 [] 之间充满了我不想要的内容的文本。由于我可以自己删除括号,因此我不需要单行代码来为我执行此操作,但我确实需要一个单行代码来删除它们之间的所有内容。
用圆括号 () 代替方括号怎么样?
答案1
替换[some text]
为空字符串。假设您不想解析嵌套括号,则some text
不能包含任何括号。
sed -e 's/\[[^][]*\]//g'
请注意,在括号表达式中[^][]
,要匹配除[
or以外的任何内容]
,]
必须将 放在第一位。通常 a]
会结束字符集,但如果它是字符集中的第一个字符(此处是在^
补码字符之后),则 a]
代表其自身。
如果您确实想解析嵌套括号,或者括号内的文本可以跨越多行,那么 sed 不是合适的工具。
答案2
该命令sed -e 's/([^()]*)//g'
将执行圆括号而不是方括号。