他の多くのファイルからデータを取得して、大きな (~200MB) 一括 SQL 挿入ステートメントを作成するプログラムがあります。
INSERT INTO ...
VALUES
('a','b',1,2,3),
('c','d',4,5,6),
残念ながら、最後の行はコンマではなくセミコロンで終わる必要があります。(理想的には私の perl プログラム内で) 最後の文字だけを a から a,
に変える方法はあり;
ますか?
私が試したこと:
1) ファイルが終了して閉じられた後:
open(DAT,">>$output") || die("Cannot Open File");
seek(DAT, 2, SEEK_END);
print DAT ";";
close(DAT);
これは、最後にセミコロンを置くだけです。
`perl -p -i -e 's/,$/;/g' $output`;
2)私の perl プログラム内から呼び出していますが、これはすべてのコンマを置き換えています。
3) 最後の行を印刷するときは、コンマではなくセミコロンで終了します。ただし、行が書き込まれるまで最後の行であることが実際にはわからないため、これは機能しません。
;
4) 最後の文字が aではなく a であることを除いて、ファイル全体を新しいファイルにコピーします,
。ただし、これは遅いため、理想的ではありません。