Mar 162013
 

Mac上のbashでhtmlタグのdoctypeを一括で置換をする時のまとめ。findとsedを組み合わせる。ネット上にあるfindとsedの組み合わせの情報はlinuxなのだと思うが、Macではエラーが出てしまうようだ。Mac上で一括置換をしたいので以下のようにする。

find -exec sed、つまりfindの-execオプションにsedを指定して該当ファイルにsedを適用してもエラーが起きる。

GnuSedをインストール

調べるとBSD系だとどうもエラーが出るようだ。GnuのSedをインストールする。brewがなければ、先に入れてみる。

http://mxcl.github.com/homebrew/


brew install gnu-sed

置換スクリプトを作成

以下指定したフォルダ内のhtmlファイル全てのdoctypeを差し替えるスクリプト。既存のdoctypeがある前提。

#!/bin/bash

echo "Input DIR : "
read dir
find $dir -type f -name "*.html" -print0 | xargs -0 gsed -i"" -e "s/<!DOCTYPE.*\">/<!DOCTYPE HTML PUBLIC \"\-\/\/W3C\/\/DTD HTML 4\.01 Transitional\/\/EN\">/"

find
-type fはファイルを対象
-nameは名前指定

sed
-i””バックアップをとる
-e 条件式を指定 条件式とはs///gのフォーマットのこと
参考URL

  • http://qiita.com/items/b775f7e082f1559707e2
  • http://technique.sonots.com/?UNIX%2Fコマンド%2Fテキスト処理%2Fsed
  • http://forums.freebsd.org/showthread.php?t=12235
  • http://tkuchiki.hatenablog.com/entry/2013/02/27/130114
  • http://www.ksknet.net/linuxai/find.html
  • http://www.nekonotechno.com/nekopress/?p=2776

コメント

個のコメント

Powered by Facebook Comments

 Posted by at 14:39

Sorry, the comment form is closed at this time.