shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] ajuda com scrip


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] ajuda com scrip
Date: Sun, 31 Aug 2008 12:27:52 -0300

2008/8/31 MrBiTS <address@hidden>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>>     6.800000    183.695282    134.784164
>>    6.816667    183.365829    134.770004
>>    6.833333    183.036392    134.756943
>>    6.850000    182.706940    134.745560
>>    6.866667    182.377228    134.735275
>>    6.883333    182.047226    134.726379
>>    6.900000    181.717224    134.718613
>>    6.916667    181.387222    134.712494
>>    6.933333    181.056946    134.707504
>>    6.950000    180.726669    134.703888
>>    6.966667    180.396393    134.701660
>>    6.983334    180.066116    134.700562
>>    7.000000    179.735840    134.701111
>>    7.016667    179.405579    134.702774
>>    7.033333    179.075256    134.705841
>>    7.050000    178.745300    134.710281
>>    7.066667    178.414978    134.716110
>>    7.083333    178.085022    134.723053
>>    7.100000    177.755005    134.731384
>>    7.116667    177.425293    134.741119
>>    7.133333    177.095581    134.752228
>>
>>
>> ... é um arquivo de coodernadas...
>> o que eu preciso é pegar a linha que tem a coordenda mais proxima de 180
>> (pode ser acima ou abaixo de 180) que esta na segunda coluna. este arquivo é
>> gerado diariamente e as coordenadas nunca são as mesmas.
>> alguem pode me ajudar?
>
> No seu exemplo, você tem 3 linhas com coordenadas próximas de 180.
>
>>    6.950000    180.726669    134.703888
>>    6.966667    180.396393    134.701660
>>    6.983334    180.066116    134.700562
>
> Além disso, as coordenadas 181, 182, 183 também são próximas de 180.
>
> Então, defina melhor seu problema. Se você precisa exatamente de todas as 
> coordenadas 180, um grep 180 file.txt resolve para você
> mas, enquanto você não definir corretamente o problema, não é possível passar 
> soluções mais exatas.


Eu até achei que ficou claro. Só acho que o título não diz nada. Isto
é um problema quando vamos consultar histórico.

Fiquei com preguiça de fazer a solução em bash+bc. Fiz em awk. Vejam aí.

cat proximo.awk
#!/usr/bin/awk -f

BEGIN{diff=1}
{
        aux=180-$2;
        if (aux<0)
                aux*=-1;
        if (aux<diff) {
                tudo=$0;
                diff=aux;
        }
}
END{print tudo}

./proximo.awk arquivo
  6.983334    180.066116    134.700562


-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]