2016-10-15 80 views
0

爲什麼grep返回不匹配的行?你可以看到grep突出顯示了匹配。我怎樣才能獲得理想的行爲?這是在Ubuntu中。爲什麼grep返回不匹配的行

$ service --status-all | grep'friendly'
[? ] apport
[? ] console-setup
[? ] cryptdisks
[? ] cryptdisks-early
[? ] dns-clean
[+] 友善 -recovery
[? ] irqbalance
[? ] killprocs

別名沒什麼好笑的。

$ alias 
alias grep='grep --color=auto' 
+2

似乎無法複製。 –

+1

在命令行中鍵入:「which grep」查看您正在使用哪個grep。 我剛試過你的命令(使用相同的別名),只得到包含預期匹配的輸出。我正在運行Ubuntu。 – mangotang

回答

3

看起來它不是grep。將stderr發送到控制檯。

$ service --status-all > test.txt 
[ ? ] apport 
[ ? ] console-setup 
... 

$ service --status-all 2> test.txt 
<no output> 

因此,一個可能的解決方案是重新stderrstdout然後grep的:

$服務--status-2全部> & 1 | grep的「友好」
[+] 友好 -recovery

0

,可以控制前和使用該-C標誌比賽結束後顯示上下文的量,即service --status-all | grep -C 0 'friendly'只會顯示而沒有任何相匹配的精確線上下文。

欲瞭解更多信息,你可以看到這樣的回答:https://stackoverflow.com/a/9083/2791719

相關問題