Mac OS X のターミナルで Grep を実行する -- 1 色のみ表示

Mac OS X のターミナルで Grep を実行する -- 1 色のみ表示

grep私はファイル名、行番号、一致自体に色を付けることに慣れています。これら 3 つは異なる色にする必要があります。これは Linux ターミナルや Windows の MinGW でも問題なく動作しますが、OS X では設定してもGREP_COLOR一致した結果にしか色を付けられません。

grepOSに同梱されているバージョンが古すぎませんか?

MBA 13" 上の 10.7.3 と Terminal.app。

答え1

Ignacio がすでに述べたように、OS X grep は少し古くなっています (バージョン 2.5.1)。ただし、最新の GNU grep をインストールできます。

いつものように、OS Xに欠けているLinuxツールのほとんどは、自家製:

brew install grep

ggrepこれにより、既存の が上書きされないようにインストールされますgrep。これを変更する場合は、情報メッセージを参照してください。

すべてのコマンドは、プレフィックス「g」付きでインストールされています。これらのコマンドを通常の名前で使用する必要がある場合は、次のように、bashrc から PATH に「gnubin」ディレクトリを追加できます。

PATH="$(brew --prefix)/opt/grep/libexec/gnubin:$PATH"

さらに、カラー オプションを有効にして、デフォルトで一部のディレクトリを除外することもできます。これにより、さらに便利になります。

alias grep="ggrep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}"

~/.bash_profileこれを、使用しているシェル構成に追加します。

答え2

正解です。複数の色は GNU grep 2.5.3 で初めてサポートされました。

関連情報