Как преобразовать обычный текст в формат даты в bash оболочке? - PullRequest
0 голосов
/ 06 января 2020

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

Формат 1: 12272019 (это просто число)

В

Формат 2: 2019-12-27

Я пытался использовать ниже: date -d '12272019' +% Y-% m-% d

Но он показывает недопустимый формат даты

Ответы [ 2 ]

3 голосов
/ 06 января 2020

Команда date принимает только предопределенный набор форматов для своего ввода. Ваш формат mmddyyyy не является частью этого набора.

Вы можете перестроить строку даты вручную, используя sed:

sed -E 's/(..)(..)(....)/\3-\1-\2/' <<< 12272019

или bash:

date=12272019
echo "${date:4}-${date:0:2}-${date:2:2}"
0 голосов
/ 06 января 2020

В OS / X date немного отличается, поэтому вы можете указать формат ввода для date:

date -jf "%m%d%Y" 12272019 +"%Y-%m-%d"
# => 2019-12-27

Linux, однако не позволяет вам делать это, но вы можете сделать это легко с sed:

echo 12272019 | sed -e 's/\(..\)\(..\)\(....\)/\3-\1-\2/'
# => 2019-12-27
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...