Armazenar saída do AWK em uma variável e dividir por 60

1. Armazenar saída do AWK em uma variável e dividir por 60

Filipe Mattos Kuhn
filipemknh

(usa Outra)

Enviado em 06/09/2013 - 17:38h

Olá pessoal! Prazer fazer parte agora da comunidade Viva o Linux!
Pessoal minha dúvida é a seguinte:

Tenho um arquivo onde contém uma série de informações, conforme está pequena parte a baixo;




3486 08/08/13 xxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 MICRO Conserto Concluída
Obs.Interna: ####################### = 1 REMOTO + 0:10
3503 14/08/13 xxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 MICRO Conserto Concluída
Obs.Interna: ###################### = 1 DESLOCAMENTO + 0:55
3527 20/08/13 xxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 MICRO Conserto Concluída
Obs.Interna: ###################### = 1 REMOTO + 0:21
3545 23/08/13 xxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 MICRO Conserto Concluída
Obs.Interna: ###################### = 1 DESLOCAMENTO + 1:00





Pois bem, eu trato este arquivo, e pego somente o que preciso, que no primeiro momento são as horas, somo eles com o awk, e exibo a saída:

cat arquivo.txt |grep "Obs"| cut -f2 -d "+" | cut -f1 -d ":" | awk '{s+=$1}END{print s}'



Ok, agora o que eu precisava, é saber como eu poderia salvar a soma das horas em uma variável, e multiplicar por 60 para transformar em minutos, e somar com o próximo comando que seria o mesmo de cima porem somando os minutos, depois divido o total por 60 para me dar o resultado em horas.

Resumindo: pego as horas,multiplico por 60 e transformo em minutos, salvo em uma variável. Pego os minutos salvo numa variável, somo as duas e divido por 60 para dar o resultado total em horas, depois imprimo o resultado.

Bhaaa que peleia rsrsrs.. Abraço a todos, quem tiver uma dica, por favor! To precisando!!


  


2. Re: Armazenar saída do AWK em uma variável e dividir por 60

Fernando
phoemur

(usa Debian)

Enviado em 06/09/2013 - 18:40h

Assim já multiplicaria por 60 na saída:


cat arquivo.txt |grep "Obs"| cut -f2 -d "+" | cut -f1 -d ":" | awk '{s+=$1*60}END{print s}'


Agora o que você quer seria obtido mais facilmente assim: (saida em minutos)

grep 'Obs' arquivo.txt | cut -f2 -d'+' | awk -F':' '{s+=$1*60;n+=$2}END{print s+n " minutos"}'



Ou então saída em horas:

grep 'Obs' arquivo.txt | cut -f2 -d'+' | awk -F':' '{s+=$1*60;n+=$2}END{print (s+n)/60 " horas"}'


Aqui eu não usei nenhuma variável em bash, só no awk, porém se você quiser é só atribuir o valor...


3. Re: Armazenar saída do AWK em uma variável e dividir por 60

Filipe Mattos Kuhn
filipemknh

(usa Outra)

Enviado em 10/09/2013 - 14:33h

Olá phoemur!!

Show de bola.. Vou colocar no meu script para ver qual o resultado! Mas valeu mesmo pela ajuda!
Obrigado mesmo!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts