管道到Grep给了太多结果

时间:2015-12-03 11:09:32

标签: linux unix grep mint

我正在尝试检查特定服务是否通过Linux终端运行,并且以下命令似乎没有按预期过滤结果。不确定我做错了什么......

service --status-all | grep subversion

这会产生几行输出,例如

 [ ? ] Networking

我不确定为什么会这样,因为字符串“subversion”不包含在上面的行中...

2 个答案:

答案 0 :(得分:2)

您应该使用:

service --status-all |& grep subversion

因为没有状态([ ? ])的服务被发送到stderr,而stderr没有流水线化为grep(然后无论如何都打印在你的终端上)。

|&将stderr发送到stdout,因此grep能够过滤它。

答案 1 :(得分:1)

尝试此操作并将stderr(2)重定向到stdout(1):

service --status-all 2>&1 | grep subversion