2

コード階層を調べて "x" という用語を探すために grep を実行したいのですが、結果に色を付けて迷惑な用語を除外します。今私は:

grep -Rn --color x * | grep -v -e html -e svn -e test -e doc -e y

問題は、これがパイプのために一致する色を失うことです. カラーリングが失われないように、この 1 つのステートメントを作成する方法はありますか?

4

2 に答える 2

4

--color=alwaysパイプを介してカラーフォーマットを保持するように指定します。

grep --color=always x * | grep -v -e html -e svn -e test -e doc -e y

その後、結果をファイルにパイプする必要があり、色をフォーマットするエスケープ文字を削除する必要がある場合は、結果をパイプしてエスケープ文字を削除できる便利なsedスクリプトを次に示します。

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" 

( OS X-Eの代わりにオプションが必要であることに注意してください)-r

于 2012-11-01T21:16:31.753 に答える