2015-07-07 5 views
1

У меня есть текстовый файл, который записывает даты в американском формате (MMDDYY, например 070715). Мне интересно, есть ли простой способ конвертировать это в дату, так как мне нужно сделать расчет даты. Я замечаю, что есть команда date, которая позволяет вам преобразовать строку в дату (date -d "string"), но она может только читать дату определенными способами. Я могу сделать некоторые манипуляции подстроки, чтобы преобразовать в нужный формат, но похоже, что для этого должен быть намного более простой способ сделать это.
Благодарякак преобразовать число на дату в нетрадиционном формате

ответ

3

Использование манипуляции BASH строки вы можете сделать:

s='070515' 
date -d "20${s: -2}-${s:0:2}-${s:2:2}" 
Sun Jul 5 00:00:00 EDT 2015 
0

Вы можете конвертировать ММДДГГ, скажем, YYYYMMDD с sed:

sed 's/\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/20\3\1\2/' 

Это предполагает, что (а) все даты 21 век (20xx) и (b) даты являются единственным или, по крайней мере, первым полем в вашем файле. Если нет, могут использоваться более сложные выражения.

Смежные вопросы