[英]Piping To Grep Is Giving Too Many Results
我正在尝试检查某个特定服务是否正在通过Linux终端运行,并且以下命令似乎并未按预期过滤结果。 不知道我在做什么错...
service --status-all | grep subversion
这样会产生多行输出,例如,
[ ? ] Networking
我不确定为什么会这样,因为字符串“ subversion”没有包含在上面的行中...
您应该使用:
service --status-all |& grep subversion
因为没有状态( [ ? ]
)的服务将发送到stderr,而后者不会通过管道传递到grep(然后无论如何都将在终端上打印出来)。
|&
将stderr发送到stdout,以便grep能够对其进行过滤。
尝试此操作,并将stderr (2)重定向到stdout(1):
service --status-all 2>&1 | grep subversion
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.