Linuxで再帰的にファイルの内容を置換する

Linux
スポンサーリンク

コマンド

 

Linuxの場合

grep -rl 置換前 . | xargs sed -i 's/置換前/置換後/g'

出典:こちら

SSHログインしたXSERVERでも使えて大変助かりました。感謝を込めて発リンクさせていただきます。

xserverはviは入ってたがvimが入ってなかったのでvimgrepが使えない。

 

macの場合

ここで使う以下3つのコマンド

  • grep
  • xargs
  • sed

これらはいずれもGNUのものじゃないので(BSDかPOSIX)、GNUのものを入れる。

全部homebrewで入れられる。↓↓

 

GNU grep をインストール

brew install ggrep

 

GNU xargs をインストール

brew install findutils

出典

 

GNU sed をインストール

brew install gnu-sed

出典

全部インストールしたあとのコマンド

以下のように実行する。

ggrep -rl 置換前 . | gxargs gsed -i 's/置換前/置換後/g'

コメント