ディレクトリ再帰 grep について
my fxg。
fxg() { if [ $# -eq 1 ]; then find . -type f -print0 | xargs -0 grep -nH $1 elif [ $# -eq 2 ]; then find . -name "*.$2" -print0 | xargs -0 grep -nH $1 elif [ $# -eq 3 ]; then find "$3" -name "*.$2" -print0 | xargs -0 grep -nH $1 fi }
find にマッチするファイルが1つしかないとき、どのファイルから見つかったのかわかるように -nHをつけている。
fxg "-i hOgE" py .
とできるようにあえて $1 には引用符をつけていない。
…とここまで作って思ったのだが、より一般性を求めるなら
grep hoge -R . --include="*.cpp" --include="*.h"
を直に打った方がいいかな。
$ grep asd -R . ./a:asdasda ./sub/b:asdasda ./sub/b.py:asdasda ./sub/b.rb:asdasda ./a.py:asdasda $ grep asd -R . --include="*.rb" ./sub/b.rb:asdasda $ grep asd -R . --include="*.rb" --exclude="*.rb" $ grep asd -R . --exclude="*.rb" --include="*.rb" $