はじめに
ディレクトリの中のファイルの文字を一括置換したい時がある。一括置換するワンライナーを紹介。
前提
変換元: github.com/hogehoge/src
変換先: git.sumito.com/hogehoge/src
ワンライナー
grep -rl github.com/hogehoge/src ./* | xargs perl -i -pe 's#github.com/hogehoge/src#git.sumito.com/hogehoge/src#g'
注意
grep の検索文字はエスケープしない。
sedの区切り文字は / (スラッシュ) で区切ることが一般的だが、他の文字で代用も可能。
特にディレクトリのような / (スラッシュ) が入る際は、他のものを今回は # (シャープ)を区切り文字とする。