Используйте strptime
и strftime
для анализа и переформатирования каждый раз.
% jq -c '.times[][0] |= (strptime("%H:%M %p") | strftime("%H:%M"))'
{ "times": [ [ "8:16 AM", "EventA" ], [ "3:19 PM", "EventB" ] ]}
{"times":[["08:16","EventA"],["15:19","EventB"]]}
^C
strptime
создает список, в котором час, соответствующий %H
, устанавливается на 24-часовое время на основемодификатор соответствует %p
;strftime
затем просто выводит любой час, который он получает.
Сложная часть - не преобразование;он определяет, к каким значениям следует применить преобразование к .Здесь мы предполагаем, что каждый раз является первым элементом массивов в значении массива ключа times
.