У меня есть программа, которая извлекает данные из ряда других файлов в один большой (~ 200MB) Bulk SQL оператора вставкиЗаменить последний символ в большом файле
INSERT INTO ...
VALUES
('a','b',1,2,3),
('c','d',4,5,6),
К сожалению, последняя линия должна закончиться на запятой вместо запятой. Есть ли способ (идеально в моей программе perl) превращать только последний символ из ,
в ;
?
Что я пробовал:
1) После того, как файл был закончен и закрыт:
open(DAT,">>$output") || die("Cannot Open File");
seek(DAT, 2, SEEK_END);
print DAT ";";
close(DAT);
Это просто ставит точку с запятой в самом конце.
2) Вызов `perl -p -i -e 's/,$/;/g' $output`;
из моей программы perl, но это заменяет каждую запятую.
3) При печати последней строки заканчивайте точкой с запятой вместо запятой. Это не работает, потому что я действительно не знаю, что это была последняя строка, пока строка не была написана.
4) Скопируйте весь файл в новый файл, за исключением последнего символа: ;
вместо ,
. Однако это медленное и, следовательно, не идеальное.
Вы противоположна модулей CPAN? – squiguy
К сожалению, да. Он работает на внешнем сервере с довольно жесткими ограничениями установки. Не уверены, какие модули будут доступны. Не лучшая окружающая среда. – AlexQueue