yagrepとは?

正規表現エンジンとして、 鬼車を組み込んだ GNU grep です。オプション指定により、POSIX EREや Perl5互換の正規表現を使うことができます。 yagrep 最新版(2009/03/31) ddd871d81dd572d3f50bd9a58ee86b88 *yagrep-20090331.zip 811af9936dbfe1b057377b6227fe81d86a6d8b70 yagrep-20090331.zip

以下 readme.jaより

yagrep はGNU grep 2.5.4の正規表現エンジンを鬼車に換えたものです。
このため、Perl互換の正規表現を日本語対応して使うことができます。
COPYINGというファイルにある記述に従い、自由に再配布することが
できます。ソースコードは要求があれば開示します。宛先はこの文書の
末尾にあります。

現在ソースツリーを管理するリポジトリ置くことのできる場所を
探しています。どこかお勧めの場所があったら教えて下さい。

オプションは

 yagrep --help

で出力されます。

ディレクトリ再帰検索は

  yagrep -r --include="*.c" int *

のように行います。-rは再帰検索の指定で、--includeは検索対象となるファイルの
ワイルドカード指定です。最後のワイルドカード '*'はディレクトリ自体の指定に
なります。--includeは複数指定することもできます。

マッチした部分のカラー出力に対応しました。前提として、環境変数
TERM に dumb 以外のものを設定してください(ttyがおすすめ)。
その上で --color オプションを指定するとマッチした部分が赤く色づきます。
ただしこれはファイルやパイプにリダイレクトしたときには無効になります。
また、環境変数 GREP_COLORに ANSIエスケープシーケンスで定義される色指定を
置くことにより、任意の色でカラー出力できます。

色指定の例:

    Black       0;30     Dark Gray     1;30
    Blue        0;34     Light Blue    1;34
    Green       0;32     Light Green   1;32
    Cyan        0;36     Light Cyan    1;36
    Red         0;31     Light Red     1;31
    Purple      0;35     Light Purple  1;35
    Brown       0;33     Yellow        1;33
    Light Gray  0;37     White         1;37

セミコロンの前の0は通常輝度を指示し、1は高輝度を指示します。
3xの代わりに4xと指定すると反転表示の指示です。たとえば

set GREP_COLOR=1;41;37

のようにすると、マッチした部分を赤い背景に白い文字で表示します。


変更履歴
2005年2月28日
最初のバージョン

2005年3月3日
-Pオプション指定時に-w、-xオプションが有効にならなかった
バグをfix。

2005年4月24日
ディレクトリ再帰検索を実装。

2005年7月28日
[ヲ-゜]が半角カナにマッチしなかったバグをfix。

2006年1月25日
grepモードのときに\{\}による検索が使えなかったり{{が検索できなかったバグを
fix。

2006年2月9日
echo 1 2 3|yagrep -E "([0-9][ ]){2}" が何も出力しないというバグに対する
オリジナルのバグfixを反映
(http://lists.gnu.org/archive/html/bug-grep/2006-02/msg00016.html)。

2006年3月13日
マッチした部分のカラー出力をサポート。
使用している鬼車のバージョンを 2.5.4にする。

2006年11月13日 パッチレベル8
Perl拡張正規表現使用時に、\s や \W で終わるパターンで検索したときに
検索対象の文字列によっては暴走することがあったバグをfix。
このバグはオリジナルから存在する。

2009年1月1日
ベースバージョンを GNU grep 2.5.3に移行。
読み込みバッファのサイズを拡大。これで検索速度が上がるといいなあ。

2009年1月25日
-Pオプションが有効になっていなかった問題を解消。

2009年3月22日
再帰検索時に、ディレクトリ名の末尾に '/' をつけていると file not found となって
検索できなかったバグをfix。
ベースバージョンを GNU grep 2.5.4 に移行(配布アーカイブには2.5.3ベースのものも同梱)。

--exclude-pattern 指定時にオリジナル版と違う動作をしていた場合があったのを修正。



ホームページへ