Como deletar linhas onde os elementos diferentes de zero são menores que um

Como deletar linhas onde os elementos diferentes de zero são menores que um

Quero excluir linhas ondetodos os elementos diferentes de zerosão menos de um

Meu arquivo é

a   2   0   0   0   9
b   3   0   0   0.7 13
c   0.3 0.5 0   0   0
d   0.4 7.96681779026634e-05    0       0     

O resultado esperado é

a   2   0   0   0   9
b   3   0   0   0.7 13

Eu sou iniciante. Eu tentei awk '{for(i=2;i<=NF;i++){if($i+0=0 print $0; else < 1) next}} 1'editando um código anterior como emesse link, mas estou fazendo algo errado.

Responder1

Tentar:

$ awk '{f=0; for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1} f' file
a  2   0   0   0   9
b   3   0   0   0.7 13

O código usa uma variável f. Se fterminar como verdadeiro (diferente de zero), imprimimos a linha.

  • f=0

    Para cada linha, comece definindo fcomo falso (não imprima)

  • for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1

    Se algum elemento for diferente de zero e for maior que um, defina fcomo 1(true).

  • f

    Se ffor verdadeiro (diferente de zero), imprima esta linha.

informação relacionada