次のようなCSVファイル(temp.csv)を元に、SQLを生成してみます。
52,"n.p.","詳細不明","unknown","",5,"",1 42,"あり","散在","多発","",15,"",1 43,"び漫性","限局","","",20,"",1
次のようなAWKファイル(awk.txt)作成。
# 区切り文字をカンマに変更 BEGIN {FS=",";} { # ""をNULLに変更 sub("\"\"","NULL",$0); # "を全て'に変更。subだと行の最初の"しか置換されない。 gsub("\"","'",$0); # SQLのINSERT文に変換。 print "INSERT INTO words(words1, words2, words3, word_order, exam_type) VALUES("$2","$3","$4","$6",2);"; }
これで
awk -f awk.txt temp.csv > test.txt
とすれば、
INSERT INTO words(words1, words2, words3, word_order, exam_type) VALUES('n.p.','詳細不明','unknown',5,2); INSERT INTO words(words1, words2, words3, word_order, exam_type) VALUES('あり','散在','多発',15,2); INSERT INTO words(words1, words2, words3, word_order, exam_type) VALUES('び漫性','限局',NULL,20,2);
という内容のtest.txtが出来上がります。
【備忘録】AWKでSQL生成 その1