繁体   English   中英

Bash - 管道多个 grep 和打印输出

[英]Bash - pipe multiple grep and print output

我正在编写一个 shell 脚本,它将 grep 某些单词的文档,然后以彩色输出显示找到的单词。

echo $(egrep -wi --color=always 'error|exception' $logFile)

现在我想将此 grep 与另一个结合以排除一些结果为此我想将上面的命令通过管道传递给 grep 命令以排除某些模式

grep -vi '<status>error</status>'

由于某种原因,当我尝试执行命令时失败

echo $(egrep -wi --color=always 'error|exception' $logFile | $(grep -v '<STATUS>ERROR</STATUS>') )

或者即使我尝试

echo $(egrep -wi --color=always 'error|exception' $logFile | grep -v '<STATUS>ERROR</STATUS>')

我究竟做错了什么? 为什么这会失败?

问题似乎只附加在 egrep、--color=always 和 -i 上。

egrep -wi --color=always 'error|exception' /tmp/log.log | grep -v '<STATUS>ERROR</STATUS>'  

不起作用但是

egrep -w --color=always 'error|exception' /tmp/log.log | grep -v '<STATUS>ERROR</STATUS>'

egrep -wi --color 'error|exception' /tmp/log.log | grep -v '<STATUS>ERROR</STATUS>'

grep -wi --color=always 'error|exception' /tmp/log.log | grep -v '<STATUS>ERROR</STATUS>'

确实......但我不知道为什么你的解决方案不起作用......

在 shell 脚本中:

result=`grep -wi --color=always 'error|exception' /tmp/log.log | grep -v '<STATUS>ERROR</STATUS>'`
echo $result

暂无
暂无

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

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