インフラエンジニアbacchiのわかったことまとめ

bacchi.me

bash

複数のファイルの文字列を一気に置換するスクリプト

更新日:

複数のファイルの文字列を一気に置換したい場合にどうぞ。

使うシーンとしては、htmlとかphpにベタ書きの文字列をガッと修正したいときなどでしょうか。

#!/bin/bash
for fname in `find /DIR/ -name "*html" -o -name "*php" | sort`
do if grep -i pattern $fname > /dev/null; then
sed -i -e "s/pattern/new_pattern/g" $fname
fi
done

簡単な説明

指定したディレクトリ以下にあるhtmlファイルとphpファイルに
patternという文字列があればnew_patternという文字列に置き換える。

というシロモノでございます。

簡単な説明

  • -name "*html" -o -name "*php"の部分を-type fとしてやると全てのファイルがgrepの対象となります。
  • grepの-iオプションは大文字・小文字の区別をなくすものなので、不要であれば指定しないでください。

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-bash

Copyright© bacchi.me , 2020 AllRights Reserved.