日: 2019年6月19日

  • ディレクトリの中のファイルの文字を一括置換するワンライナー

    ディレクトリの中のファイルの文字を一括置換するワンライナー

    はじめに

    ディレクトリの中のファイルの文字を一括置換したい時がある。一括置換するワンライナーを紹介。

    前提

    変換元: 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の区切り文字は / (スラッシュ) で区切ることが一般的だが、他の文字で代用も可能。
    特にディレクトリのような / (スラッシュ) が入る際は、他のものを今回は # (シャープ)を区切り文字とする。