eliminar líneas incluye valores superiores al umbral determinado

eliminar líneas incluye valores superiores al umbral determinado

Tengo un archivo de datos como:

datos:

arht    -0.1006 0.0001  0.0147  100     arht    0.0012  -0.0002 0.0182  100
arht    -0.0006 1.0006  0.0133  100     arht    0.1011  0.0003  0.0175  100
bcmn     0.0005 0.0011  0.0165  100     bcmn    0.0015  0.0007  0.0197  100
ffgf    -0.0009 0.0012  0.0121  100     ffgf    0.0007  0.0010  0.0150  100
ffgf    -0.0004 0.0009  0.0105  100     ffgf    0.1008  0.0006  0.0151  100

Utilizo el siguiente comando para extraer las líneas que incluyen los valores superiores al 0,10 absoluto para las columnas 2-3-4 y 7-8-9:

awk 'sqrt($2*$2)<=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1 {print}' data > output

Necesito eliminar estas líneas del archivo de datos. ¿Cómo puedo modificar el código anterior?

Respuesta1

Parece una pregunta duplicada¿Extrayendo los valores mayores que un umbral en un archivo de texto? Si es así, necesitas corregir el primer término de tu código:

awk 'sqrt($2*$2)>=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1) {print}' data >output

Entonces todo lo que tienes que hacer es agregar un signo de negación (!) delante para obtener lo que deseas:

awk '!(sqrt($2*$2)>=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1) {print}' data > output

información relacionada