Конвертация даты не работает - PullRequest
1 голос
/ 24 декабря 2011

Дата во второй строке файла выглядит следующим образом

12-24-11 13:37 (MM-YY-YY MM:SS)

Я хочу преобразовать ее в

Sat Dec 24 13:37:00 CET 2011

секунды всегда должны быть 00.

Я делаю это, используя этот код

date="$(sed -n 2p $file)"
date="$(echo $date | sed 's#^\([0-9\-]\{5\}\)-\([0-9]\{2\}\)#\2-\1#')"
date="$(date -d $date)"

Но по неизвестной мне причине это нене работает ... Есть идеи?

Я всегда получаю сообщение об ошибке:

date: аргумент '13: 37 'не содержит начального' + ';
КогдаПри использовании опции для указания даты (ей) любой аргумент
без опции должен быть строкой формата, начинающейся с '+'.

Ответы [ 2 ]

3 голосов
/ 24 декабря 2011

Похоже, что вы отправляете 12-24-11 13:37, но вы должны избегать пробелов: 12-24-11\ 13:37 или "12-24-11 13:37", чтобы не интерпретировать его как два аргумента.

0 голосов
/ 24 декабря 2011

Это может работать для вас:

date=$(sed -n '2s/\(.*\)-\(..\) /date -d \2-\1\\ /p' file | sh )

Или, если вы используете GNU sed:

date=$(sed -n '2s/\(.*\)-\(..\) /date -d \2-\1\\ /ep' file )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...