是否可以知道以下命令的输出是否为空?
cat anyfile.txt | grep anymessage
不将显示的输出放入变量,也不将显示的输出重定向到文件
答案 0 :(得分:7)
如果未找到匹配项,则grep命令以状态1退出。您可以使用退出状态,如下所示:
whatever | grep pattern
echo $?
在shell脚本中,您甚至可以写:
if whatever | grep pattern ; then
# match was found
else
# not found
fi
答案 1 :(得分:2)
如果您执行grep 'sometext' anyfile.txt >/dev/null
,则不会打印任何内容。
但是,如果您之后阅读$?
,如果匹配行则显示0,否则显示1。
答案 2 :(得分:1)
您可以使用if语句编写一个小脚本并打印出true或false。
答案 3 :(得分:1)
你可以告诉grep -q
安静:
if grep -q anymessage anyfile.txt ; then
# found
else
# not found
fi
答案 4 :(得分:0)
也可以使用“grep -c anymessage anyfile.txt”(-c获取匹配数)