Linux 抑制Grep中的不匹配行

Linux 抑制Grep中的不匹配行,linux,bash,grep,Linux,Bash,Grep,在Ubuntu中运行service--status all | grep“firestart”显示service--status all的整个输出,文本“firestart”以红色突出显示。如何让grep只显示包含匹配文本的行,而隐藏其他所有内容?必须设置一些奇怪的env变量。试试这个: service --status-all | `which grep` firestarter 或: 如果可能的话,显示env和alias的输出,这样我们就可以看到grep命令的错误 对我来说,我有: [

在Ubuntu中运行
service--status all | grep“firestart”
显示
service--status all
的整个输出,文本“firestart”以红色突出显示。如何让grep只显示包含匹配文本的行,而隐藏其他所有内容?

必须设置一些奇怪的env变量。试试这个:

service --status-all | `which grep` firestarter
或:

如果可能的话,显示
env
alias
的输出,这样我们就可以看到
grep
命令的错误


对我来说,我有:

[ 13:55 jon@host ~ ]$ echo $GREP_OPTIONS
--color=always
您可能在那里设置了某些内容,和/或在
GREP\u COLOR
中设置了导致此问题的内容。

可能是
服务-状态所有
写入到stderr,而不是stdout?然后你可以用

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

如果不想使用别名,但使用原始命令,可以尝试“\cmd”。e、 g


问题-哈哈@好答案。我将添加--color以红色显示它:
service--status all 2>&1|grep sudo--color
service
只将错误写入stderr,如
[20:51]root@host~]$service——状态全部| grep httpd无法打开PID文件:权限被拒绝
,所有常规输出都转到标准输出。@chown什么操作系统?我有Ubuntu,它工作得很好我有一个centos,Ubuntu和软呢帽盒。实际上,这取决于
/etc/init.d/[SERVICE_script]
中的脚本,但通常它们遵循常规文本到标准输出,错误到标准输出的一般标准。哦,是的,你说得对,打得好
service --status-all 2>&1 | grep firestarter
service --status-all | \grep "firestarter"