echo '21.03.2016_9:55' | sed 's~\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)~\3-\2-\1~; s~_~ ~; s~ \([0-9]\):~ 0\1:~' backbone ★★★★★ (25.03.16 16:52:47 MSK) Показать ответы Ссылка
Ответ на: комментарий от backbone 25.03.16 16:52:47 MSK Ой какая тоска. И что у тебя будет, если часов станет 10?# echo '21.03.2016_10:55' | awk 'BEGIN {FS="[._:]"} {printf("%i-%02i-%02i %02i:%02i\n", $3,$2,$1, $4,$5)}' 2016-03-21 10:55 anonymous (25.03.16 17:33:47 MSK) Ссылка
Ответ на: комментарий от backbone 25.03.16 16:52:47 MSK А, всё, понял. Сорян :)Опцию -r ещё можно использовать в твоём случае. Читаться будет точно лучше. anonymous (25.03.16 17:39:32 MSK) Ссылка
Ответ на: комментарий от f1u77y 25.03.16 16:58:52 MSK SystemED anonymous (25.03.16 20:42:34 MSK) Ссылка
Я бы делал такое с использованием не sed, а python, с его стандартным классом datetime. batekman ★★★ (25.03.16 21:11:05 MSK) Показать ответ Ссылка
Ответ на: комментарий от f1u77y 25.03.16 16:58:52 MSK SeDsEdФу, аж противно. Регистромазахисты. Dron ★★★★★ (25.03.16 21:26:37 MSK) Ссылка
Ответ на: комментарий от batekman 25.03.16 21:11:05 MSK Зачем здесь datetime, когда мы просто переставляем циферки в строке?$ s='21.03.2016_9:55' $ IFS='._:' read d m Y H M <<< "$s" $ printf '%d-%02d-%02d %02d:%02d\n' "$Y" "$m" "$d" "$H" "$M" 2016-03-21 09:55 Zmicier ★★★★★ (26.03.16 04:26:27 MSK) Последнее исправление: Zmicier 26.03.16 04:26:52 MSK (всего исправлений: 1) Показать ответ Ссылка
Ответ на: комментарий от Zmicier 26.03.16 04:26:27 MSK Чтобы было более-менее читабельно.[user@alexey-laptop] ~ $ python3 -c 'from datetime import datetime;print(datetime.strptime("21.03.2016_9:55", "%d.%m.%Y_%H:%M").strftime("%Y-%m-%d %H:%M"))' 2016-03-21 09:55А так можно и XML регекспами парсить, кто ж запрещает. batekman ★★★ (26.03.16 09:21:07 MSK) Ссылка
% strftime -rsd '%d.%m.%Y_%R' '21.03.2016_9:55' % strftime '%D %R' $d salsa ★ (29.03.16 15:55:51 MSK) Ссылка