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