サブディレクトリを含めたファイル内の文字列を検索する

サブディレクトリを含めてファイル内の文字を探したいとき、find と grep をこんな風に使うんで良いのかな?もちっとすっきりしたやり方も有りそうだけど、ま、いいか。:-)

for file in `find . -type f | grep -E "*.m$"`; do
  grep -H -n -A 10 -E keyword $file >> hoge.txt
done


ちなみに grep オプションはこんな感じ。

-H --with-filename ファイル名表示
-n --line-number 行番号表示
-A num --after-content=num 該当行から num 行表示
-E --extended-regexp PATTERN 検索キーワード。正規表現もOK