Jos*_*muk 4 command-line regex grep text-processing
我想使用sed.
如果我想删除一个字符串,如何避免错误[?例如:
$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
Run Code Online (Sandbox Code Playgroud)
正如字符类的错误缺少终止 ]已经说的那样,这里的问题与[,您需要转义有关。否则,grep 将其理解为字符类。
此外,您是说//, 而您想使用/而不是\根据您的输入。
总之,这会在 之后打印一组单词[Om/:
$ echo '[Om/mystring' | \grep -oP '(?<=\[Om\/)\w+'
mystring
Run Code Online (Sandbox Code Playgroud)
您收到错误是因为[是正则表达式语法中的特殊字符,引入了字符类。要被视为字符串文字,必须对其进行转义,即\[
如果你只是想删除的[Om/前缀,那么它的简单,如果你使用的是没有出现在模式分隔符的sed:
$ echo '[Om/mystring' | sed 's;\[Om/;;'
mystring
Run Code Online (Sandbox Code Playgroud)