bash. Как перевести строку в дату?
Пытаюсь полученную дату перевести в формат даты. Дата не верно парсится. Делаю примерно так:
DATE=2022-09-09
s=$(date -d ${DATE} +%s)
ss=$(date -d @$s +%Y_%M_%D)
echo $ss
Вывод не корректный: 2022_00_09/09/22
Пробовал и по "науке":
s=$(date -d "${DATE}" +"%s")
Также пробовал и разный формат ввода строки: DATE=20220909, DATE=09/09/2022 Результат всегда одинаков.
Ответы (2 шт):
Автор решения: Vadik
→ Ссылка
Наберите в командной строке man date, вы увидите, что:
%d день месяца (например, 01)
%D дата; аналогично %m/%d/%y
%m месяц (01..12)
%M минута (00..59)
Как вам уже подсказал @user_587, используйте %m и %d для вывода даты.
Автор решения: Ivan
→ Ссылка
Если вам надо заменить - на _ то проще сделать так:
DATE=2022-09-09
$ echo ${DATE//-/_}
2022_09_09