豊福@パパイヤです。

前田さん
>|  *.Z, *.gz ファイルに対しては zcat, gzip -cd して
>|grep してくれるように拡張してもらえませんか。
> 
> zcatがない環境もあるかもしれませんので、
> ruby -r zcat rgrep ...
> というのでどうでしょう。
> 
> def open(file, mode = "r")
>   if file =~ /\.(Z|gz)$/
>     return super("|zcat #{file}", mode)
>   else
>     return super(file, mode)
>   end
> end

  なるほど open を再定義すれば rgrep の方は変更
しなくていいんですか。勉強になるなあ。

  grep 対象外のファイルのときは

    return super("/dev/null", mode)

  文字列が入ってるかもしれないパイナリファイルなら

    return super("|strings #{file}", mode)

のような感じにすればいいんですね。
---
			豊福@パパイヤ
			unbound / papaya.juice.or.jp
			toyofuku / juice.or.jp