web-dev-qa-db-ja.com

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

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

17
Tree77

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

export GREP_OPTIONS="-n --color"

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

Update:GREP_OPTIONSはgrep 2.21以降では非推奨です。このソリューションを使用すると、次の警告が表示されます。

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

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

31
richq

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

alias grep='grep -n --color'

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

29
maco

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

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

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

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

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

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

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

2

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

cgrepなどの短い名前を選択します。

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

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

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

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

0
rfabbri