Вы можете сделать это с помощью этой команды грубой силы sed
:
sed 's/^.... //
s/^Jan /01/; s/^Feb /02/; s/^Mar /03/; s/^Apr /04/; s/^May /05/; s/^Jun /06/
s/^Jul /07/; s/^Aug /08/; s/^Sep /09/; s/^Oct /10/; s/^Nov /11/; s/^Dec /12/
s/^\(..\) /\10/; s/^\(..\)\(..\)\( ........\) \(....\)./\4-\1-\2\3/'
s / ^ .... //
удаляет [
и (трехбуквенное сокращение дня) дня недели. s / ^ Jan / 01 /
и т. Д. Заменяет
(трехбуквенное сокращение названия) месяца
(и следующий пробел) {{1} } с соответствующим числовым значением (номером месяца). s / ^ \ (.. \) / \ 10 /
проверяет значение даты (дня месяца)
, которое является одной цифрой (т. Е. Число <10 с ведущий пробел)
и заменяет его ведущим нулем.
Например, [Сб, 3 сентября
→ 09 3
→ 0903
s / ^ \ (.. \) \ (. . \) \ (........ \) \ (.... \) ./ \ 4- \ 1- \ 2 \ 3 /
преобразует оставшуюся дату / время строка
от mmddHH: MM: SSYYYY ]
до YYYY-mm-ddHH: MM: SS
.
(Если вы хотите, чтобы в выводе были начальные пробелы, как показывает ваш вопрос,
добавьте их в эту команду.) Примечания: