私は grep の –colour オプションをよく使いますが、 less もよく使います。どうすれば、grep の結果を less にパイプしてカラーリングを維持することができますか?(あるいはそれは可能でしょうか?)
grep "search-string" -R * --colour | less
EDIT:
直接的な解決策かそれに準ずるものを探しています
258 Jeremy Powell 2009-09-04
単に grep --color
を実行すると、出力が端末かどうかを検出し、端末であれば色付けを有効にする grep --color=auto
を暗示します。しかし、パイプを検出した場合は、色付けを無効にします。以下のコマンドを実行します
grep --color=always -R "search string" * | less
常にカラーリングを有効にして自動検出を上書きし、less
でカラーハイライトを取得します
EDIT: less
だけでも動作しますが、おそらく古いバージョンでは-R
フラグを使って色を処理する必要があります
291 drrlvn 2009-09-04
これを.bashrc
ファイルに入れます
export GREP_OPTIONS="--color=always"
またはこのようなエイリアスを作成します
alias grepc="grep --color=always"
で、 therefromhere さんが指摘されているように -R
オプションを less
に使う必要があります
29 Paused until further notice. 2009-09-05
このような場合、私は実際に小さなshファイルを作成して、それを/usr/local/bin
に置くことを好みます。 私は通常、grep
をpwd
の上で再帰的に使うので、これは私の個人的なスクリプトです
#!/bin/sh
grep --color=always -r "$@" . | less -R
で、それを/usr/local/bin/g
としてコピーしただけです(はい、よく使います)
9 Iazel 2013-09-30
grep “をエイリアスにしないで、シェルでは絶対に使わない “less “をエイリアスにした方がいいです。.bashrc
には alias less="less -r"
と書いてください
1 not2qubit 2013-01-20
走らないといけない
grep --color=always -R "search string" * | less - r
を実行するためには、-r フラグの後に -r フラグを付けてください
0 Pierre François 2018-01-18