2016-07-27 3 views
1

grepを2回使用すると、最初のハイライトが削除されます。私が知る限り、これは書式設定コードの一致を避けるのに役立ちます。 (対照的に、 "ack-grep"は新しいマッチをハイライトしますが、一致するものが重複しない限り古いマッチのフォーマットは保持されますが、使用するフォーマットコードとうまく一致します) 私が探している動作はパターンです書式設定は存在しないように、元のテキストとのマッチングを行いましたが、将来の表示のために元の書式から書式を取り除いてはいけません。この行動はどこかに組み込まれていますか?私はgrepに--color = alwaysというエイリアスを付けました。grepで一致しないコンテンツの書式を保持できますか?

これはPreserve colouring after piping grep to grepの重複かもしれませんが、私はまた、いくつかのプログラムがフォーマットを取り除く理由とその理由と、偶発的なエスケープコードのマッチングを修正するために使用できるかどうかを調べたいと考えています。 (これが解決された、または解決できない場合は、私は喜んでそれを閉じます)

答えて

2

デフォルトでは、.bashrcファイルでlsとgrepはエイリアスとして定義されています。エイリアスは、次のとおりです。

ls -> ls --color=auto 
grep -> grep --color=auto 

autoオプションは、stdoutが画面であれば、それは色で出力が表示されますが、出力がパイプまたはファイルにリダイレクトされている場合、カラー整形が消去されることを意味します。オプション "--color = always"を指定すると、出力がリダイレクトされる場所に関係なく、カラーで書式設定されます。 --color=never

aliasと入力すると、別名を確認することができます。 lsまたはgrepコマンドを実行することもできます(エイリアスで指定されたパラメータはありません)。先頭にバックスラッシュを追加します。 lsコマンドで例えば

、:

\ls 

は色なしで画面に出力を表示します。

+0

ありがとうございます...私はこの情報で念頭に置いていた振る舞いをどのように取得するのか分かりませんが、役立ちます。別のgrepにパイプされたgrepにパイプされていた場合、最初のgrepはパイプされたときに色がはがされ/スキップされたため、最後のgrepだけが色付けされます。色とりどりの版を区別してプレーン版で操作し、デルタ(エスケープコード)を元に戻す方法があると思いますか?私はこれがもっと実用的なユースケースなしでは価値があるものよりももっと努力していると知っていますが、私はエスケープコードとストリーム編集で何か重要なものを見逃しているように感じます。 (...) –

+0

"印刷されていない"文字は無視して保存している間に、 "印刷された"文字のパターンマッチングや置き換えの方がいいでしょうか? –

関連する問題