grep / egrepの「rc」構成ファイルはありますか?(〜/ .egreprc?)


37

開発時には通常grepを使用しますが、探したくない拡張機能がいくつかあります(* .pycなど)。

〜/ .egreprcまたはそのようなものを作成し、結果に常にpycファイルを表示しないようにフィルターをかけることは可能ですか?

これは可能ですか、またはこの方法でgrepを使用するためのエイリアスを作成し、grepの代わりにエイリアスを呼び出す必要がありますか?

回答:


66

grep用のrcファイルはありませんが、GREP_OPTIONSすべてのgrepコマンドに適用されるオプションの空白区切りリストに環境変数を設定できます。これには、GNU grep(非組み込みLinux、Cygwin、およびその他のシステムでの実装)2.4が必要です。この--excludeオプションはGNU grep 2.5で新しく追加されました。このようなものをあなたのに入れてください~/.profile

export GREP_OPTIONS='--color=auto --exclude=*.pyc --exclude-dir=.git'

これを行ったが、これらのデフォルトオプションなしでgrepを1回実行する場合は、それらをオーバーライドする(たとえばgrep --color=never、色を強制的にオフにする)かGREP_OPTIONS、実行して変数を空にすることができますGREP_OPTIONS= grep …

別の可能性は、grepのエイリアスを定義することです。次のバリアントを使用します。

alias regrep='grep -Er --exclude=*~ --exclude=*.pyc --exclude-dir=.bzr --exclude-dir=.git --exclude-dir=.svn'

1
これが私が探していた答えです。〜/ .profileについてもっと読むと思います。@Gilles、あなたは男だ。助けてくれてありがとう!
誰かがまだあなたを使用してMS-DOS

1
これを行うには2つの可能性があることを考慮してください(GREP_OPTIONSとエイリアスgrep):それらのうちの1つは好ましいですか?なぜですか?
クリストフワーム

4
@Legate:重要な違​​いは、スクリプト内の呼び出しにGREP_OPTIONS影響するのgrepに対して、エイリアスは影響しないことです。だから、GREP_OPTIONS慎重に使用する必要があります。最も一般的な用途はforです--color=auto。これは、出力が端末である場合にのみ有効になるため、原則としてスクリプトでは無害です。
ジル「SO-悪であるのをやめる」

GREP_OPTIONSは非推奨です。エイリアスまたはスクリプトを使用してください
スティーブンペニー

3

ackは、あなたが望むことなどを実行できます。

これは、デフォルトでは、バイナリファイルを無視し、あなたが望むよう、あなたは他のファイルタイプを無視するように伝えることができ--notext--nohtmlそれはあなたがあなた自身のタイプでそれをカスタマイズすることができますので、あまりにもrcファイルを定義する能力を持っているなど、。


私もackを使用していますが、好きではありませんでした。確かに高速ですが、すべてのインストールで利用できるわけではないため、grepについて考えていました。ありがとう!
誰かがまだあなたを使用してMS-DOS

2
ackは単一のPerlプログラムであり、プレーンテキストファイルとしてダウンロードできます。必要に応じて、betterthangrep.com / ack-standaloneにアクセスし、コンテンツを切り取ってファイルに貼り付けることができます。Perlを実行できる場所であれどこでも利用できるように、具体的に作成しました。
アンディレスター

0

あなたの質問に対する直接的な答えではありません。ただし、grepには* .pycを含むすべてのバイナリファイルを無視するオプションがあります。オプションは-I

grep -rI hello .

0

GNU grep/ egrepにはありません。

とにかく、特別な名前のエイリアスまたはスクリプトがこれを行うことを望むでしょう。なぜなら、いつかあなたがあなたの特別な設定と一致し忘れたものを見ようとするとき、あなたは非常に混乱するかもしれないからです。


3
GREP_OPTIONS中に~/.profile近くなります。
ジル 'SO-悪であるのをやめる'

1
@Gilles —良い点。実際、私はそれが自分のために設定されていることを忘れていました--color=auto
mattdm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.