[linux] 複数ファイルの一括文字列置換処理


ブログを再構築するにあたって、前に構築していたブログのアーカイブのアドレスを、blog.tokcs.comからoblog.tokcs.comに変更することにした。

本当は前のブログも完全に引き継ぎたかったが、バックアップの失敗でデータベースがパーになっていたので、復旧が不可能だった。

MTは基本スタティックなブログシステムなので、当然中のリンクも静的リンクばかり。

相対パスだったら良かったのに、ご丁寧にフルパスが書いてある。

というわけで、複数ファイルの文字列置換を自動化するために適当にシェルスクリプトを組んでみた。

#!/bin/sh
cd "$1"
find . -follow -type f -name "*.html" | while read html; do
echo "Converting $html ..."
cp $html $html.bak
sed -e "s/blog.tokcs.com/oblog.tokcs.com/g" $html.bak > $html
done

一応念のためにバックアップを取ってくれる親切仕様。

これで一気にファイルを書き換えてやる。

あとはCSSファイルもいろんなとこからインポートしてきてたりしてるので、そこを書き換えて終了。

無事旧アーカイブの引っ越しも終了した。

http://oblog.tokcs.com/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください