Posted at

DBのちょっとした変更に正規表現で置換する

More than 3 years have passed since last update.

カラムの追加および、データの追加をするときに手作業でやるしかないか、と思ってたところで

作業効率化ではじめてちゃんと正規表現を使って置換をしてみました。

以下はcreateTableでカラムを一行追加したので、それに合わせてinsert文も変えるものです。

既存のカラムをコピーして新カラムとして追加するというだけのものなので、単純な変更なのですが、

手作業でやるとなると結構きついものがあります。

%s/INSERT INTO `sampleTable` (sampleCd,EditionCd,sampleNm,sampleOrdr,samplecdName,isInitCond) VALUES ('\([0-9]\+\)','\([0-9]\+\)','\([^0-9]\+\)','\([0-9]\+\)','\([^0-9]\+\)',\(.\+\));/INSERT INTO `sampleTab;le` (sampleCd,EditionCd,sampleNm,sampleOrdr,samplecdName,iInitCond) VALUES ('\1','\2','\3','\3','\4','\5',\6);/

vimで置換をしたので、特殊文字は基本的に\でエスケープしないといけないみたいです。

なんか色々試したのですがこのやり方でちゃんと通りました。もっとあると思います。

普段からこういうの取り入れる意識つけたいなぁ

http://archiva.jp/web/tool/vim_regexps.html

http://www.megasoft.co.jp/mifes/seiki/