2013-05-23 5 views
0

Я пытаюсь сделать счетчик синхронизации для забега через GeekTool на Mac (UNIX на основе) и имеет следующий:GeekTool (UNIX) счетчик ведущие нули

expr `date -j -f "%d/%m/%Y %H:%M:%S" "05/09/2012 07:41:15" "+%s"` - `date "+%s"` | awk '{ if(int(0$1/86400) < 0) printf "" , int(0$1/86400) ; if(int(0$1/86400) < 0 || int($1%86400/3600) < 0) printf "%d:" , int($1%86400/3600) ; if(int($1/86400) < 0 || int($1%86400/3600) < 0 || int($1%3600/60) < 0) printf "%d:" , int($1%3600/60) ; if(int($1/86400) < 0 || int($1%86400/3600) < 0 || int($1%3600/60) < 0 || $1%60 < 0) printf "%d" , $1%60 ; else printf "Hello!" }' | sed -E 's/-/ /' | sed -E 's/-/ /' | sed -E 's/-/ /' | sed -E 's/-/ /' 

Проблема в том, что когда либо минуты или секунды меньше 10, нет начального нуля (т.е. 1: 7 вместо 01:07). Как добавить к нему ведущие нули, чтобы они выглядели как стандартные тактовые часы?

+0

Say 'PRINTF "% 02d"' вместо 'PRINTF "% D"'. – devnull

+0

Это изменение дало 00:00, но, похоже, оно не повлияло на 1-9 секундные или минутные интервалы, которые по-прежнему появляются 1: 1 для 01:01. – user2378735

ответ

1

Использование M и S:

$ date +"%H:%M:%S" 
14:54:00 
+0

Разве это уже не в коде в начале («% d /% m /% Y% H:% M:% S»)? – user2378735