сценарий оболочки для преобразования строки в дату и время - PullRequest
0 голосов
/ 09 мая 2019

У меня есть строка с длинным значением даты, хранящимся в переменной, например, dt = "20190501131050", хочу преобразовать это значение в dat, чтобы вычесть 15 минут из этого значения, чтобы оно стало 20190501125550

Iпопытался привести к дате, используя (date -d), но получил ошибку недопустимая дата

     dt="20190501131050"
     dt2=$(date -d "$dt" +'%Y%m%d%H%M%S')

1 Ответ

0 голосов
/ 10 мая 2019

попробуйте это:

#!/bin/sh
dt="20190501131050"
dt=$(echo "$dt" | sed "s/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/15 minutes ago \1-\2-\3 \4:\5:\6/")
date -d "$dt" +"%Y%m%d%H%M%S"

объяснение

Разлагает дату на отдельные элементы, упорядочивает их по действительной дате и вычитает 15 минут.

выход

20190501125550
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...