如何抑制grep的输出

时间:2014-04-15 15:41:19

标签: bash grep echo

当我运行此命令时,它还会在grep成功时打印文件中的实际$项。我不想打印内容/ $ item。我只想表现出我的回声? 有人可以帮忙吗

if grep $item filename; then
   echo it exist
else
    echo does not exist
fi

由于

1 个答案:

答案 0 :(得分:6)

使用-q

if grep -q "$item" filename; then
   echo "it exists"
else
    echo "does not exist"
fi

或者在单行内:

grep -q "$item" filename && echo "it exists" || echo "does not exist"

来自man grep

  

-q , - quiet, - silent

     

安静; 不要向标准输出写任何东西。立即退出   如果找到任何匹配,则为零状态,即使检测到错误也是如此。   另请参阅-s或--no-messages选项。 (-q由POSIX指定。)


Adrian Frühwirth points below,仅grep -q就会使STDIN沉默。如果您想摆脱STDERR,可以将其重定向到/dev/null

grep -q foo file 2>/dev/null