Como deletar uma linha quando até mesmo uma coluna da linha tem um valor menor que um

Como deletar uma linha quando até mesmo uma coluna da linha tem um valor menor que um

Eu tenho um arquivo com 7.000 linhas e 28 colunas. Como deletar uma linha quando mesmo uma das 28 colunas tem valor menor que um?

Encontrei respostas com awkas quais eles excluem uma linha quando uma coluna é especificada.

Mas quero excluir a linha independentemente do número da coluna que tenha valor menor que um.

Meu arquivo está em formato delimitado por tabulações.
arquivo de exemplo

a       1       2       4       7       9
b       0.5     0.9     6       10      3
c       3       5       12      7       9
d       0.9     6       7       4       10

Responder1

No Awk, você percorreria os campos (colunas) e testaria cada um deles. Como suas linhas têm uma primeira coluna não numérica, comece na segunda ( i=2):

Então

awk '{for(i=2;i<=NF;i++){if($i+0 < 1) next}} 1' file

Ex. dado

$ cat example
a       1       2       4       7       9
b       0.5     0.9     6       10      3
c       3       5       12      7       9
d       7.96681779026634e-05     6       7       4       10

então

$ awk '{for(i=2;i<=NF;i++){if($i+0 < 1) next}} 1' example
a       1       2       4       7       9
c       3       5       12      7       9

Em Perl você poderia usar grepo array dividido padrão @Fdepois de mudar a primeira coluna:

perl -ane 'shift @F; print unless grep { $_ < 1 } @F' file

informação relacionada