grepでの再帰検索と置換について
grep -r [keyword] *
ですが、拡張子を指定したい場合に、
grep -r [keyword] *.html
はダメなんですよね(泣)
というわけで、ブログの情報を探し回ってみると、
find . -name '*.html' | xargs grep -i [keyword]
とか
grep -i [keyword] $(find . -name '*.html')
とやると上手くできました。
さらに、検索結果を置換もしたい場合もあるでしょう。
foo が含まれるファイルを bar に変換するには、sedコマンドを組み合わせて、
for FILE in `find . -name '*.html' | xargs grep -l -i foo`; do cp ${FILE} ${FILE}.work; sed -e "s/foo/bar/g" ${FILE}.work > ${FILE}; \rm ${FILE}.work; done
とやるとできます。