繁体   English   中英

Android Shell sed麻烦

[英]Android shell sed trouble

我正在尝试使用sed从文档中删除所有用方括号括起来的文本实例,因此我的代码是:

sed -r 's|\[[^\]]*\]||g' file

但是,这似乎并不代表方括号括起来的所有文本实例。 特别是,它似乎失败了:

[/a]
[/b]
[span style "blah" blah]

依此类推,但适用于包含纯文本的方括号。 据我所知,正则表达式应该在寻找方括号括起来的不是[]的任何字符,那么到底是什么错呢?

我尝试了此正则表达式,但没有删除括号中的任何文本。

当我删除第二个“ \\”时,正则表达式为

 sed -r 's|\[[^]]*\]||g'

它在所有情况下都能完美运行。

我在Mac和Linux上都尝试过。 Android运行Linux,因此它也可能在其中运行。


一句话解释:扫描集在涉及转义的地方很特殊。 如果']'字符是扫描集中的第一个字符,则无需转义它。 如果它不是扫描集中的第一个, 则无法转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM