Quiero eliminar filas dondetodos los elementos distintos de ceroson menos de uno
mi archivo es
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
La producción esperada es
a 2 0 0 0 9
b 3 0 0 0.7 13
Soy principiante. Lo intenté awk '{for(i=2;i<=NF;i++){if($i+0=0 print $0; else < 1) next}} 1'
editando un código anterior como eneste enlace, pero estoy haciendo algo mal.
Respuesta1
Intentar:
$ 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
El código utiliza una variable f
. Si f
termina como verdadero (distinto de cero), imprimimos la fila.
f=0
Para cada fila, comience estableciendo
f
en falso (no imprimir)for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1
Si algún elemento no es cero y es mayor que uno, configúrelo
f
en1
(verdadero).f
Si
f
es verdadero (distinto de cero), imprima esta fila.