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

时间:2015-10-27 12:35:59

标签: linux bash shell grep

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

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

现在我想将这个grep与另一个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>')

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

1 个答案:

答案 0 :(得分:1)

问题似乎只附加了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