再帰的にディレクトリ内のファイルの内容を置き換える

XXX.texファイルの中身を置き換える例

for i in `find . -name '*.tex'`; do sed -e 's/情報学類/情報科学類/g' $i > $i.new && mv $i.new $i && echo $i; done


なんのために使ったかはご想像にまかせます。


ちなみに、今回は日本語がシェルスクリプト内に含まれると

sh replace.sh
replace.sh: replace.sh: cannot execute binary file

とか言われて怒られるので,環境変数とかにつっこんでから、それを参照して使うという方法でお茶を濁した。

for i in `find . -name '*.tex'`; do sed -e "s/$REPLACE_FROM/$REPLACE_TO/g" $i > $i.new && mv $i.new $i && echo $i; done'


普通の下を行く男。にやり。