Конвертировать формат даты в Unix (AIX)
У меня есть строка, которая содержит дату в следующем формате:
Ср 13 мая 13:57:00 1992
Мне нужно преобразовать его в строку в следующем формате: yyyyMMddHHmmss
Есть ли функция bultin, которая делает это?
PS мне это нужно для работы на AIX 6.1
1 ответ
Решение
Вот awk
Решение, которое должно быть достаточно портативным (отформатировано для удобства чтения):
echo "Wed May 13 13:57:00 1992" | tr ':' ' ' | \
awk 'BEGIN { months["Jan"] = "01"
months["Feb"] = "02"
.....
months["Dec"] = "12"
}
{ printf "%s%s%s%s%s%s\n", $7, months[$2], $3, $4, $5, $6 }'
Я бы поставил awk
хотя программный код в файле, так что мне нужно было набрать его только один раз, и тогда я мог сделать awk -f convert_date_format.awk
вместо...
tr
немного не нужно - замена двоеточий (или просто разделение поля времени вокруг них) может быть сделано в awk
, но это не так просто, как добавление tr
шаг...