ツイート
2014,01,07, Tuesday
Webサイトの移設にともなって数多い複数ファイル内に書かれている特定の文字列を書き換えないといけなくなり、一つづつ変換していくのは面倒なので複数ファイル内の文字列を一気に置換したい時があります。
探してみるとフリーソフトも意外と多いのですが、LinuxやMacでコマンドを使って一気に置換することもできるので、書き留めておきます。 今回はMacからperlスクリプトを使ってやってみます。 ターミナルを起動して目的のファイルが入っているディレクトリに移動します。 cd /Users/ユーザ名/対象のディレクトリ 正しく移動できているかpwdコマンドで確認します。 以下の例では、あるディレクトリ内にある複数のファイル内に記述されている文字列 higashiosaka.ac.jpをmurakamigakuen.jpに置き換えます。 ファイルは上書きされるため不安な場合はコピーをとっておいてからやってみてください。 find ./ -name "*" -exec perl -i -pe 's|higashiosaka.ac.jp|murakamigakuen.jp|' {}\; perlを実行する際にオプションをつけています。 -i 複数のファイルを一括処理する -pe p 置換をファイルの先頭から最後までループさせる e 処理が終わったらperlの終了 変換したい文字列の記述方法は 's|変換前の文字列|変換後の文字列|' 前後しますが、始めに書かれている find ./ -name "*" はUNIXコマンドで現在いる位置から検索するためのもので、-nameというオプションを(名前を検索)"*"はワイルドカードを使ってすべてのファイルから検索させるためのものです。 にほんブログ村 ■東大阪大学・東大阪大短期大学部 ■東大阪大学情報教育センター ■太田研究室 ツイート
| http://www.kazdesign.org/weblog/index.php?e=811 |
| etc | 12:14 AM | comments (x) | trackback (x) | |