У меня огромный (10+ ГБ) файл .csv на сервере Linux.Строки выглядят примерно так:
6;20000327;20000425;990099,0;20000327;LL;UBXO;7;-1;62;F;30;001;NO;NO;wgB;0;99;0002;5530;001;708;196;1;AA;N;N;100;53,81;0;0;0;1;1;;1;
6;20000327;20000425;990099,0;20000425;LL;OLD*;62;62;92;F;30;001;NO;NO;ueB;0;99;0002;XXXX;001;;;1;AA;N;N;;;0;0;1;0;0;;30;
Я ищу быстрый скрипт для следующего:
- изменить любое вхождение
<number>,<number>
на <number>.<number>
- удалить последнюю точку с запятой в каждой строке
У меня есть особые проблемы со второй, потому что скрипт не должен возражать, если это файл Linux или файл Windows.
Я пытался сделать это с помощью sed, но пока не получилось.
[править]
Я наконец-то использовал смесь решений Денниса Уильямса и SiegeX:
sed 's/;\([0-9]*\),\([0-9]*\);/;\1.\2;/g;s/;\(\r\?\)$/\1/' inputfile
(часть с s /; [[: blank:]] * $ // не работала с моим файлом ...)