我有一个程序,它从许多其他文件中提取数据以形成一个大的(~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);
这只是在最后放置一个分号。
2)从我的 perl 程序中调用`perl -p -i -e 's/,$/;/g' $output`;
,但这是替换每个逗号。
3) 打印最后一行时,以分号而不是逗号结尾。但是,这不起作用,因为在写完该行之前,我实际上并不知道它是最后一行。
4) 将整个文件复制到一个新文件中,除了最后一个字符是 a;
而不是 a ,
。然而,这很慢,因此并不理想。