Aqui está uma maneira difícil de fazer o que você quer. Ele faz algumas suposições sobre a natureza da saída, mas deve fornecer um modelo de como você pode expandir uma solução mais exata para seu problema.
Exemplo
Para esta demonstração, estou pegando a saída que você forneceu e colocando-a em um arquivo de texto para que eu possa "simular" o comando do TSM em execução. Esse arquivo estou chamando tsm_output.txt
.
O código a seguir analisará o próximo tempo de execução:
$ cat tsm_output.txt | grep 'Next Exec' | awk '{print $3, $6}'
2 7
A primeira suposição que minha solução faz é que a natureza dessa saída será tal que sempre será a hora & Minutos. Com base nisso, podemos expandir as horas & minutos para que sejam segundos.
$ cat tsm_output.txt | grep 'Next Exec' | awk '{print $3"*60*60+"$6"*60"}'
2*60*60+7*60
Podemos, então, canalizar essa saída para uma ferramenta de calculadora de linha de comando chamada bc
:
$ cat tsm_output.txt | grep 'Next Exec' | awk '{print $3"*60*60+"$6"*60"}' | bc
7620
Assim, com o número de segundos, podemos solicitar a ajuda do comando date
para calcular o tempo de NOW + os segundos:
$ date -d "$(cat tsm_output.txt | grep 'Next Exec' | \
awk '{print $3"*60*60+"$6"*60"}' | bc) seconds"
Wed Mar 12 06:22:42 EDT 2014
Isso informa a data para exibir o tempo + os segundos do deslocamento. Este é o formato date -d "X seconds"
.