awkからperlへ移植(アナルいー)
Perlによるワンライナー Perlワンライナーのオプションの位置が重要
「アナルいー」と覚えればいいんだなぁ。aが2回でてくるので1回指定だけでいいので 以下のような感じ。
タブ区切りのテキストファイルからinsert文を作ってみました。
perl -F'\t' -anle 'BEGIN{print "insert into hoge (i,my,me,mine) values" } printf "%s(\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27)" ,$sep,$F[0],$F[1],$F[2],$F[3]; $sep=","; END{print ";"}'
一気に1万件もINSERTできなーいって、やめてって怒られてしまったかたは・・・
perl -F'\t' -anle 'BEGIN{ $index=0;$span=10;} if ($index % $span == 0 ) {$sep=""; printf "%sinsert into hoge (i, my, me, mine) VALUES ", ($index!=0)? ";\n" : ""} printf "%s(\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27)" ,$sep,$F[0],$F[1],$F[2],$F[3]; $sep=","; $index++; END{print ";"}'
アナルいーと唱えて、awkを卒業しましょう。