Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

シェルスクリプトを使い複数ファイルの中身を置換する方法(sh)

①shで自動処理してもらう為バッチファイルを作る

vim autoexe.bat

②バッチファイルの中にsedコマンドをかく

sed -i s#'http://www.d.jp/'##g index.html | sed -i s#'target="_blank"'##g index.html
sed -i s#'http://www.d.jp/'##g m1-1.html | sed -i s#'target="_blank"'##g m1-1.html
sed -i s#'http://www.d.jp/'##g m1-2.html | sed -i s#'target="_blank"'##g m1-1.html
sed -i s#'http://www.d.jp/'##g m1-3.html | sed -i s#'target="_blank"'##g m1-3.html
sed -i s#'http://www.d.jp/'##g m2-1.html | sed -i s#'target="_blank"'##g m2-1.html
sed -i s#'http://www.d.jp/'##g m2-2.html | sed -i s#'target="_blank"'##g m2-1.html
sed -i s#'http://www.d.jp/'##g m3-1.html | sed -i s#'target="_blank"'##g m2-1.html
sed -i s#'http://www.d.jp/'##g m3-2.html | sed -i s#'target="_blank"'##g m2-1.html

③バッチファイルを実行

sh autoexe.bat

やり方その2

find *.html -type f -exec perl -p -i.bak -e 's#http://www.d.jp/##' {} \;

※*.html ですべてのhtmlファイル。-i.bakでindex.bak.htmlファイルも同時に生成

find *.html -type f -exec perl -p -i.bak -e 's#target="_blank"##' {} \;

参照)http://kazmax.zpp.jp/linux/lin_replace.html