Vc pode usar zsh que suporta comparações de numeros não inteiros. ;-) 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 > > >
-- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br
