尝试将正则表达式传递给 grep

Lon*_*don 2 unix linux bash grep

我正在尝试从日志文件中提取错误行:

我用过这个:

more report.txt | grep -E (?i)(error)
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我试图提取所有包含“Error”的行,忽略大小写,因此它可能是错误、错误、错误等。

WMR*_*WMR 5

您的行的问题是括号是由 shell 而不是 grep 拾取的,您需要引用它们:

grep -E '(?i)(error)' report.txt
Run Code Online (Sandbox Code Playgroud)

对于这个特定的任务,其他答案当然是正确的,您甚至不需要括号。