2016-10-15 10 views
0

grepが一致しない行を返すのはなぜですか? grepが一致を強調表示するのが分かります。どのようにして目的の行動を得ることができますか?これはUbuntuにあります。grepが一致しない行を返す理由

$ service --status-all | grep 'friendly'
[? ] apport
[? ]コンソールセットアップ
[? ] cryptdisks
[? ] cryptdisks-early
[? ] dns-clean
[+] フレンドリー -recovery
[?] ]平衡度
[? ] killprocs

エイリアスで面白いことはありません。

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

は複製できないようです。コマンドラインで –

+1

と入力します。使用しているgrepを確認するには "which grep"と入力します。 私はあなたのコマンドを(同じエイリアスを使って)試して、期待される一致を含む出力のみを得ました。私はUbuntuを実行しています。 – mangotang

答えて

3

grepではないようです。コンソールにはstderrが送信されます。 |

$サービス--status-すべて2> & 1:対

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

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

だから可能な解決策は、stderrstdout、その後のgrepにリダイレクトすることですgrepの「優しい」
あなたは前と-Cフラグを使用して一致した後に表示されるコンテキストの量を制御することができます優しい -recovery

0

[+]、すなわちservice --status-all | grep -C 0 'friendly'のみいかなるせずにマッチした、正確な線を表示しますコンテキスト。詳細については

あなたはこの答えを見ることができます:https://stackoverflow.com/a/9083/2791719

関連する問題