テストデータとかDMLを沢山つくりたいとき、Excelで Insert 文作ったりしますよね。
でもパターンや対象テーブルが多いとちょっと面倒です。
ここはひとつ awk つかった方が幸せになれるかもです。
こんな感じのCSVファイルを用意して、
vi ~/tmp/sample_tbl.csv
id,name,password user0001,hoge,fuga user0002,foo,moge user0003,bar,fuge user0004,gor,hage user0005,ver,boge
sample_tblテーブルへのINSERT文をawsで作るための設定ファイルを作ります
vi ~/tmp/sample_tbl.awk
BEGIN { print "INSERT INTO `sample_tbl` (`id`, `name`, `password`) VALUES" } NR > 1 && NR < = 5 { # \047 はシングルクウォート printf "(" printf "\047"$1"\047," printf "\047"$2"\047," printf "\047"$3"\047" print ")," } NR > 5 { printf "(" printf "\047"$1"\047," printf "\047"$2"\047," printf "\047"$3"\047" print ");" }
最後に awk を実行してSQL文を作ると
cd ~/tmp
awk -F “,” -f sample_tbl.awk sample_tbl.csv > insert_sample_tbl.sql
こんな感じになります。
vi insert_sample_tbl.sql
INSERT INTO `sample_tbl` (`id`, `name`, `password`) VALUES ('user0001','hoge','fuga'), ('user0002','foo','moge'), ('user0003','bar','fuge'), ('user0004','gor','hage'), ('user0005','ver','boge');