Leandro eu pensei em truncar o número e somar +1 e aí comparar com o  
outro número.
Você pode me ajudar nisso?
Preciso saber a posição do ponto e após isso filtrar até esta posição

pensei em fazer: echo ${numero: $[0]:$[posicaoPonto]}
como eu pego a posição do ponto...

se alguem puder me ajudar, ainda preciso saber como eu posso retirar  
uma linha de um arquivo que contenha em uma específica coluna um  
espaço em branco (vazio)

Muito grato a todos que contribuem e também aos que tem dúvidas!

JJ.Santanna

Em 02/12/2009, às 21:34, Leandro Santiago escreveu:

> ah sim, a comparação que fiz lá em cima, no if não imprime nada, já  
> que é
> falso :-) COloque um ! antes para imprimir :-)
>
> if (( ! $(echo 2.0 == 1.006 | bc -l) )); then
> echo isso é falso
> fi
>
> 2009/12/2 Leandro Santiago <[email protected]>
>
>> cara, o bash não faz cálculo em ponto flutuante (com vírgula), mas a
>> calculadora bc faz.
>>
>> Dê uma olhada nisso:
>> echo 2.0 == 2.000 | bc -l
>> 1
>>
>> echo 2.0 == 1.23 | bc -l
>> 0
>>
>> O bc executa e devolve na tela 1 se é true e 0 se é false. Mas isto é
>> exatamente o oposto do que os comandos no linux retornam.
>>
>> Aí é sí inverter pra usar no shell:
>>
>> if (( $(echo 2.0 == 1.006 | bc -l) )); then
>> echo isso é falso
>> fi
>>
>> Aí vc pode até criar uma função que já deixe isso implicito, ou  
>> algo assim.
>> Bem, é uma solução para o promeiro problema, mas isso só funciona  
>> no bash.
>> Para usar o test, use em vez de (( )), [ ].
>>
>> 2009/12/2 Jair Santanna <[email protected]>
>>
>>
>>>
>>> Caros, tenho um if do tipo:
>>> if [ $x -ge $y] && [$x -ge 10 ]; then
>>> no entanto tanto $x quanto $y é uma variável vinda de um resultado  
>>> do
>>> bc (Ex: 187.456 e 42.53)! como eu faço pra essa comparação no if dar
>>> certo?
>>>
>>> outra pergunta é o seguinte:
>>> eu estou filtrando um arquivo retirando as linhas que contém "|" e
>>> necessito ainda retirar as linhas que possuem um campo vazio.
>>> Até a parte do "|" eu fiz ... mas não consigo "grepar" o campo  
>>> vazio.
>>> cat $arquivo | awk '{print $1 $2}' | grep -v "|"
>>>
>>> o arquivo original é:
>>> 1 3805.3000 14623222.7282 3824.0322 | 1938.8375 9613106.3892
>>> 3100.5009 | 337.2250 300369.1373 548.0594
>>> 2 3488.9500 12899910.9205 3591.6445 | 1779.0625 8485836.0882
>>> 2913.0458 | 394.3541 378363.1307 615.1122
>>> 3 | 2056.0650 10657926.4011 3264.6479 | 345.0095 446662.5792
>>> 668.3281
>>> 4 2395.1500 7573923.9362 2752.0762 | 1197.5750 5881227.4358
>>> 2425.1242 | 403.5875 411857.8703 641.7615
>>> 5 3640.4250 13285972.4044 3644.9927 | 1863.7000 8278214.4591
>>> 2877.1886 | 326.4041 253348.7635 503.3376
>>> 6 | 2187.1375 11898716.2496 3449.4515 | 305.3950 274575.2704
>>> 523.9993
>>> 7 3049.7500 9555864.2435 3091.2560 | 1607.5750 6153174.9558
>>> 2480.5594 | 286.1200 231689.1085 481.3409
>>> 8 2690.8550 9990945.0768 3160.8456 | 1416.5650 5937139.9383
>>> 2436.6247 | 277.1750 231953.6237 481.6156
>>> 9 3359.5175 12599418.9737 3549.5660 | 1714.3962 8214373.9095
>>> 2866.0729 | 527.6541 670845.0793 819.0513
>>> 10 3876.0000 15016463.8461 3875.1082 | 1981.4650 9505323.7970
>>> 3083.0705 | 394.6995 423310.0278 650.6227
>>> 11 3146.9250 6242632.6044 2498.5260 | 1573.4625 6027675.8231
>>> 2455.1325 |
>>> 12 | |
>>> 13 2209.9250 5495139.2506 2344.1713 | 1141.6375 3381980.1582
>>> 1839.0160 | 234.1866 188748.0349 434.4514
>>> 14 2435.2500 3321308.7756 1822.4458 | 1217.6250 3516355.7761
>>> 1875.1948 | 328.1458 266152.6066 515.8998
>>> 15 | | 324.0508 383277.1339 619.0938
>>> 16 4117.0750 17223157.3531 4150.0791 | 2096.0400 11469113.2536
>>> 3386.6079 | 483.7125 577614.8352 760.0097
>>> 17 3931.5750 15587941.8916 3948.1567 | 2012.5500 10065638.0535
>>> 3172.6389 | 538.3666 677216.6453 822.9317
>>> 18 3593.5300 12922503.8411 3594.7884 | 1837.6900 8137569.8555
>>> 2852.6426 | 494.6041 623128.9664 789.3851
>>> 19 3752.8000 14978281.1897 3870.1784 | 1915.6500 9493854.7291
>>> 3081.2099 | 386.3250 365627.9316 604.6717
>>> 20 2290.5750 9786021.4301 3128.2617 | 1221.1000 5547771.9194
>>> 2355.3708 | 399.6166 403369.8248 635.1140
>>>
>>> "o arquivo grepado é:"
>>> 1 3805.3000 1938.8375 337.2250
>>> 2 3488.9500 1779.0625 394.3541
>>> 4 2395.1500 1197.5750 403.5875
>>> 5 3640.4250 1863.7000 326.4041
>>> 7 3049.7500 1607.5750 286.1200
>>> 8 2690.8550 1416.5650 277.1750
>>> 9 3359.5175 1714.3962 527.6541
>>> 10 3876.0000 1981.4650 394.6995
>>> 11 3146.9250 1573.4625
>>> 13 2209.9250 1141.6375 234.1866
>>> 14 2435.2500 1217.6250 328.1458
>>> 16 4117.0750 2096.0400 483.7125
>>> 17 3931.5750 2012.5500 538.3666
>>> 18 3593.5300 1837.6900 494.6041
>>> 19 3752.8000 1915.6500 386.3250
>>> 20 2290.5750 1221.1000 399.6166
>>>
>>> perceba que a linha 11 precisa ser retirada
>>>
>>> grato pela ajuda
>>>
>>> JJ.Santanna
>>>
>>>
>>>
>>
>>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de  
> programação, como perl, C etc. Quem insistir em não seguir esta  
> regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: [email protected]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>


Responder a