да, прежде чем кто-то вскочит и нападет на меня вилами, это повторяющийся вопрос, но другие не работают на меня, поэтому я задаю его себе сейчас.
у меня есть файл CSV, в котором есть даты где-то в каждой записи. Добавленная трудность в конвертации заключается в том, что иногда даты будут иметь одну цифру в течение нескольких дней. Пример записи:
abc,0,2,-2,3-16-1994
xyz,1,2,3,10-09-1994
Я чего-то хочу, желательно СЭД, чтобы преобразовать эти данные, чтобы выглядеть так:
abc,0,2,-2,1994-03-16
xyz,1,2,3,1994-09-10
Я пробовал:
sed 's|(..)-(..)-(....)|--|'
но это дает ошибку, и это на самом деле не покрывает проблемы с одной цифрой.
Я тоже пробовал:
awk -F - '{print }'
это на самом деле имеет желаемый эффект, но опять же не совсем. Команда awk преобразует его, но только месяц и год, и вместо того, чтобы поместить дату туда, где она была, она помещает месяц и год начала строки, оставляя часть дня, где бы она ни была изначально.
любая помощь будет будь крутым!
спасибо заранее.
редактировать
в комментариях справедливо указывалось, что я ошибся со своими примерами. Даты должны быть:
abc,0,2,-2,16-03-1994
xyz,1,2,3,2-05-1994
С желаемым результатом:
abc,0,2,-2,1994-03-16
xyz,1,2,3,1994-05-02
Извините, ребята.