我正在处理一些不需要的方括号[]中的内容。因为我可以自己删除括号,所以我不需要单衬板为我做这件事,但是我确实需要单衬板来将它们之间的所有东西都去除。
括号()而不是括号呢?
我正在处理一些不需要的方括号[]中的内容。因为我可以自己删除括号,所以我不需要单衬板为我做这件事,但是我确实需要单衬板来将它们之间的所有东西都去除。
括号()而不是括号呢?
Answers:
替换[some text]为空字符串。假设您不想解析嵌套的方括号,some text则不能包含任何方括号。
sed -e 's/\[[^][]*\]//g'
请注意,在方括号表达式中[^][],除了[或之外],其他任何内容都]必须匹配。通常,a ]会结束字符集,但是如果它是字符集中的第一个字符(在此是^补字符之后),则]代表自身。
如果您确实想解析嵌套的方括号,或者如果方括号中的文本可以跨越多行,则sed不是正确的工具。
s/\[[^\[\]]*\]//g(即使用反斜杠转义字符集的成员)。
[…]=字符集。^作为第一个字符意味着对集合的补充。]通常会被标记为集合的结尾,但如果它是以外的第一个字符,则为^普通字符-空集合或空集合的补码是不允许的。然后[是普通的并]结束设定。
该命令sed -e 's/([^()]*)//g'将执行括号而不是括号。