Bob*_*b96 4 unix bash shell grep regular-language
我想使用 grep 和正则表达式来搜索文本文档。\n当我输入以下内容时:
\n\ngrep -o ((D|d)ie|(D|d)as|(D|d)e(r|n|m|s)|(ei|Ei)(n|ne|nen|nem|ner|nes)) [A-Z\xc3\x84\xc3\x96\xc3\x9c][A-Za-z\xc3\xa4\xc3\xb6\xc3\xbc]* document.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n我明白了:
\n\n-bash: syntax error near unexpected token `('\n
Run Code Online (Sandbox Code Playgroud)\n\n我已经尝试将正则表达式放在引号中。通过这样做,我没有收到错误,但也没有找到任何东西。感谢你们对我的帮助。
\n\n例如,我的文档中有以下句子:
\n\nDer Mann und die Frau haben ein Haus.\n
Run Code Online (Sandbox Code Playgroud)\n\n我想提取:
\n\nDer Mann\ndie Frau\nein Haus\n
Run Code Online (Sandbox Code Playgroud)\n
将模式放在单引号中并使用 启用扩展正则表达式支持-E
。
grep -Eo '((D|d)ie|(D|d)as|(D|d)e(r|n|m|s)|(ei|Ei)(n|ne|nen|nem|ner|nes)) [A-Z\xc3\x84\xc3\x96\xc3\x9c][A-Za-z\xc3\xa4\xc3\xb6\xc3\xbc]*' document.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n请记住,(D|d)
可以用括号表达式更简单地编写[Dd]
。这同样适用于正则表达式的其他部分,即对单个字符进行 OR 运算。
正如评论中提到的,要考虑的另一个选项是-i
选项,这意味着完全忽略字符的大小写。
归档时间: |
|
查看次数: |
3847 次 |
最近记录: |