grepコマンドをgrep -n --colour?に置き換えます


17

私は怠け者だから.... grepを使いたいときはいつでもgrep -n --colourにしたい。これを永続的にマップする方法はありますか?


6
「私は怠け者だから...」の+1。開発者としてのキャリアを考えたことはありますか?:)
ハンニバルレクター博士

回答:


31

$ HOME / .bashrcファイルに次を追加します。

export GREP_OPTIONS="-n --color"

これはegrep、grepを使用するエイリアスでも機能します。

更新:GREP_OPTIONSはgrep 2.21から非推奨になりました。このソリューションを使用すると、次の警告が表示されます。

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

したがって、最善の解決策は、macoのアドバイスに従ってください。または、デフォルトでカラーで出力するagの使用に切り替えます。


尊敬。
myusuf3

4
尊敬するが賛成しない ;-)
richq

1
パイプは問題なく使用できます。彼らはただ再帰しません。
マコ

1
おいおい、私は賛成した。これはエイリアスよりも好きです。
ドミトリーリックテン

@marco:そのとおりです(bashを使用)-私はcshを考えていました。おっとっと!
richq

29

〜/ .bash_aliasesの編集次の行を追加します。

alias grep='grep -n --color'

〜/ .bash_aliasesが存在する場合、〜/ .bashrcによって自動的に含まれます


8
または、.profilebashだけでなくすべてのシェルで動作させる場合は、行を追加します。
ラッセポールセン

1
これはxargsでは機能しません。例:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

ホームディレクトリにある.bashrcファイルを変更して、エイリアスを定義します。これにより、デフォルト設定が上書きされます。

エイリアスgrep = 'grep -n --color'

ターミナルを開いたときにのみファイルが読み取られるため、変更後にターミナルを閉じて再度開きます。

ファイル.bashrcを見ると、次のようなデフォルトのエイリアスが見つかります。

エイリアスll = 'ls -l'

エイリアスla = 'ls -A'

エイリアスl = 'ls -CF'


1

他の回答に記載されているエイリアスに加えて、スクリプトを作成します。エイリアス自体は常に機能するとは限りません。スクリプト層は、とにかく人間が読める出力に対して十分に高速です。

次のような短い名前を選択しcgrepます。

#!/bin/sh
grep --color -n "$@"

それをあなたのパスに置いてください~/bin(UPEを読んだ場合、これはあなたのパスにあります:)。次に、このようなものが動作します:

find /usr/share -name '*.txt' | xargs cgrep testing

私はまだそれほど幸せではありません。cgrepを選択的に入力せずに、端末にstdoutするときにgrepが常に色を付けるようにしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.