Eu tenho um arquivo CSV gerado por um script meu, ele obtém o tempo de CPU usado por usuário, porém obtém isso em segundos, preciso em horas, então preciso dividir cada linha por 3600.
exemplo de arquivo de entrada
**USER,TOTAL_CPU,AVERAGE_CPU
user1,1234552.0,1234.3
user2,9999999.0,82772.6
user3,7777776227.9,282882,0**
Posso facilmente obter o que quero se fizer uma coluna de cada vez com:
for i in `awk -F , 'NR!=1{print $2}' myfile.out`; do bc -l <<< "scale=3; ($i/3600)"; done
Isso me dá a saída para uma coluna por vez. Eu quero os dois ao mesmo tempo, tem que haver uma maneira melhor, em vez de trabalhar uma coluna, depois a próxima e mesclar as duas. Eu quero os dois ao mesmo tempo, a saída deve ser exatamente igual à entrada, mas em vez de segundos, será em horas.
exemplo de arquivo de saída:
USER,TOTAL_CPU,AVERAGE_CPU
user1,342.931,0.342
user2,2777.777,22.992
etc.....
Awk
solução:A saída: