Cómo eliminar una fila cuando incluso una columna de la fila tiene un valor menor que uno

Cómo eliminar una fila cuando incluso una columna de la fila tiene un valor menor que uno

Tengo un archivo con 7000 filas y 28 columnas. ¿Cómo eliminar una fila cuando incluso una de las 28 columnas tiene un valor menor que uno?

Encontré respuestas en awklas que eliminan una fila cuando se especifica una columna.

Pero quiero eliminar la fila independientemente del número de columna que tenga un valor inferior a uno.

Mi archivo está en formato delimitado por tabulaciones.
archivo de ejemplo

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

Respuesta1

En Awk, recorrería los campos (columnas) y probaría cada uno. Dado que sus filas tienen una primera columna no numérica, comience en la segunda ( i=2):

Entonces

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

entonces

$ 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

En Perl, podría grepdividir la matriz predeterminada @Fdespués de desplazar la primera columna:

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

información relacionada