首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我得到字符类的“缺失终止]错误?

为什么我得到字符类的“缺失终止]错误?
EN

Ask Ubuntu用户
提问于 2018-02-22 14:43:38
回答 2查看 11.2K关注 0票数 5

我想使用sed切割带有括号的字符串。

如果我想使用[删除字符串,如何避免错误?例如:

代码语言:javascript
复制
$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2018-02-22 14:47:41

正如字符类缺少的]错误已经说明的那样,这里的问题与[有关,您需要转义它。否则,grep将其理解为字符类。

另外,您说的是//,而您希望根据输入使用/而不是\

总之,这将在[Om/之后打印一组单词:

代码语言:javascript
复制
$ echo '[Om/mystring' | grep -oP '(?<=\[Om\/)\w+'
mystring
票数 10
EN

Ask Ubuntu用户

发布于 2018-02-22 14:59:00

您将得到错误,因为[是正则表达式语法中的一个特殊字符,引入了一个字符类。若要将其视为字符串文本,则必须转义,即\[

如果您只想删除[Om/前缀,那么如果使用没有出现在模式中的分隔符,则会更简单:

代码语言:javascript
复制
$ echo '[Om/mystring' | sed 's;\[Om/;;'
mystring
票数 6
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1008738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档