grep -r を使う罪悪感

4日くらい書こうと思って書いてないので、超短く書いておく。シェル、UNIXの美しさはどこへ行ってしまうのだろうな。的な。


grep -r が便利で使ってしまって困る。'-r'オプションは、拡張なので、使ったらいけないというのもあるけど、一番の問題は、UNIX的美しさに反している、というのが気持ち悪い、という点である。UNIX的解決だと↓こう

$ find . | xargs grep xxxx

なんだけど、これは大量にファイルがあるときによろしくない。grep -r だと、逐次表示がされるのだけど、findを使うと、一旦findが完了するまで待ってから、grep が始まるので、体感として遅い。あと、argvの数って制限無かったっけ?という問題も。
でも、やっぱりgrep -r が美しさを放棄してしまった代償として、find では使えるいろんな条件がまったく使えない。全部のファイルをgrep するしかない。

find のオプションで、見つかったファイルごとにコマンドを実行する、というのがあるので、それを使えばよいのだけど、これもこれで、findの機能多すぎ、UNIX的美しさが無い問題がある。findのオプション多すぎて覚えられない。{}て何?


というわけで、ここら辺で時間。