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
→ Ссылка