如何解决匹配sed内方括号字符集内的`[`和`]`
我遇到了下面的语句here:
要将
]
包含在与方括号表达式匹配的字符列表中,请使其成为第一个字符(或对于否定集,在^
之后是第一个字符):[]abc]
或{{1 }}(不是)。[^]abc]
或[abc]]
所以我尝试了一种边界匹配和替换[abc\]]
和[
的情况:
]
输出为:
echo '[]' | sed 's/[[]/^/' #only [ in matching string (works)
echo '[]' | sed 's/[[]]/^/' #both [] in matching string (fails #1)
echo '[]' | sed 's/[\[\]]/^/' #escaping both [] in matching string (fails #2)
echo '[]' | sed 's/[][]/^/' #including ] as first character (as suggested by above quoted point) inside [..] leads to [][] pattern (fails #3)
echo '[]' | sed 's/[]]/^/' #only ] in matching string (works)
在上述故障中,我认为它应该已打印^]
^
^
^]
[^
,也就是说,将^^
中的两个方括号替换为[]
。我已将故障编号为^
,#1
和#2
。有人可以解释一下我在这些故障中遇到的输出背后的原因,以及应如何使之工作我想同时匹配#3
和[
吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。