изменить последние две цифры числа с помощью sed

Я использую эту команду:

sed 's/;\([0-9]*\),\([0-9]*\);/;\1.\2;/g;s/;\(\r\?\)$/\1/' inputfile

для изменения огромных csv-файлов под свои нужды (см. delete ';' в конце каждой строки ).

Теперь бывает, что в некоторых csv-файлах есть «фиктивные даты» например, 20000500, который нельзя импортировать в SQL из-за двух последних нулей (что невозможно для дат).

Как мне отредактировать мою команду sed, чтобы в таких случаях всегда менять последние две цифры на 01 (я означает, только если они равны 00)?

Я пробовал

sed 's/;\([0-9]*\),\([0-9]*\);/;\1.\2;/g;s/;\([0-9]{6}\)00;/;\101;/g;s/;\(\r\?\)$/\1/' inputfile

, но это не сработало.

5
задан Community 23 May 2017 в 10:32
поделиться