Se você estiver usando o Bash, poderá usar o comando time
integrado. Ele gera "m" para minutos e "s" para segundos, em vez de dois-pontos ambíguos. Você pode controlar o formato de sua saída com a variável TIMEFORMAT
:
$ time sleep 1.99
real 0m1.999s
user 0m0.004s
sys 0m0.004s
$ TIMEFORMAT=%0lR # truncate (not round) the decimal seconds
$ time sleep 1.99
0m1s
O valor padrão de TIMEFORMAT
:
TIMEFORMAT=$'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'
Editar:
Você também pode usar sed
para modificar a saída de /usr/bin/time
para remover a ambigüidade de maneira semelhante:
$ /usr/bin/time -f "%E" sleep 1.99 2>&1 | sed 's/:\([^:]\+\)$/m/;s/:/h/;s/\..*//;s/$/s/'
Demonstração usando time
de saída simulada:
$ echo -e '0:01.99\n10:11:12' | sed 's/:\([^:]\+\)$/m/;s/:/h/;s/\..*//;s/$/s/'
0m01s
10h11m12s