指定ディレクトリ以下の対象ファイルすべての文字列を置換
LaTeX等を使っていると、定義ファイル内の変数名を変えなくてはいけないことがたまにある。 特にグループで定義ファイルを共有していると、個人のものとconflictを起こしてしまうためである。 これはLaTeXに限らず大規模な開発環境だとそうなるかもしれない。 そこで変更したものをすべてのファイルで置換したい。
grep -lr '置換したい文字列' ./* | xargs sed -i.bak -e 's/置換したい文字列/置換後の文字列/g'
grep
sed
-i
はバックアップの作成。たまにsed
の使い方をミスることがあって、空のファイルに置換された文字列だけ、というやばい現象になることがあるので、入れといたほうが良い。-e
は置換のコマンド。これはvimと一緒。