понедельник, 27 февраля 2023 г.

Убрать начальный ноль из месяца, часа, минуты или секунды в date

В генераторе данных для нагрузочного тестирования ETL используется команда date чтобы получить часы, минуты и секунды. По-умолчанию они имеют "0" в качестве префикса что с свою очередь приведет к ошибкам в "математике" bash

$ echo $(( 60 - $(date +%S) ))
-bash: 60 - 09: value too great for base (error token is "09")

Можно использовать sed чтобы убрать начальный ноль

$ echo $(( 60 - $(date +%S | sed -e 's/^0//') ))

Но на StackOverflow нашлось более красивое решение - использовать padding modifiers в date

$ echo $(( 60 - $(date +%-S) ))

Полный список модификаторов есть в man date.

Комментариев нет:

Отправить комментарий