rafael_rss
(usa Ubuntu)
Enviado em 25/12/2011 - 16:11h
Olá pessoal, eu possuo o seguinte arquivo .csv:
data;hora;V100;V80;V60;V100_dir;V80_dir
23/7/2011;09:50;11,0924;11,10333;11,1598;79,34329;82,63939
23/7/2011;10:00;10,73268;10,61008;10,57356;84,39226;87,88141
23/7/2011;10:10;11,29236;11,11776;10,97868;86,95915;90,83371
23/7/2011;10:20;10,35653;10,3516;10,25928;84,54935;87,41072
23/7/2011;10:30;10,23556;10,25128;10,15844;107,6377;111,4632
23/7/2011;10:40;10,38312;10,32525;10,29224;100,7829;103,4373
23/7/2011;10:50;10,83277;10,57756;10,43612;91,724;95,58873
23/7/2011;11:00;9,213201;9,061516;8,985883;96,17053;100,4735
23/7/2011;11:10;10,21716;10,21736;10,18804;94,1221;98,09654
23/7/2011;11:20;8,583238;8,603241;8,575276;100,3492;102,2458
23/7/2011;11:30;11,06324;11,05291;10,98212;82,24713;86,0853
23/7/2011;11:40;10,49084;10,4392;10,35536;83,63853;87,13919
23/7/2011;11:50;8,91416;8,785287;8,780643;91,3092;96,24698
.
.
.
continua até mais de 8000 linhas.
Eu tenho um conhecimento bastante básico de shell e awk, mas sei que são ferramentas poderosas para manipular dados. As colunas desse arquivo são data (contém data e hora), hora, V100 (vento à 100 m de altura), V80 (vento à 80 m de altura), V60 (vento à 60 m), V100_dir (direção do vento à 100m) e V80_dir (direção do vento à 80m).
O que eu estou tentando fazer nesses csv's gigantes é o seguinte:
-que o meu .sh leia linha por linha do arquivo e verifique se nas colunas 3, 4 e 5 (as de velocidade de vento) o vento está entre 0 e 25m/s, ou seja 0<x>25;
- e que as colunas 6 e 7 estejam entre 0<x>360;
- verificar as colunas que tenham 0 (zero) ou estão vazias (sem nenhum valor).
- por fim ele teria que gerar um log.txt dizendo o número da linha que apresenta algum dos 3 itens acima.
Se alguém puder ajudar, agradeço muito!
Sei que devo usar o while read linha, correto?
Obrigado pela atenção!!