unix sed – Eliminar líneas si hay un punto en la quinta columna

Pregunta:

Tengo un archivo y quiero eliminar toda la línea si tiene un punto en la quinta columna.

Fichero de entrada:

sc2/80         20      .        A        C        80      PASS    N=2       F=5;U=4
sc2/60         55      .        G        .        72      PASS    N=2       F=5;U=4 
sc2/68         20      .        T        A        71      PASS    N=2       F=5;U=4 
sc2/10         24      .        T        .        31      PASS    N=2       F=5;U=4
sc2/40         59      .        T        .        31      PASS    N=2       F=5;U=4
sc2/24         24      .        A        G        38      PASS    N=2       F=5;U=4

Rendimiento esperado:

sc2/80         20      .        A        C        80      PASS    N=2       F=5;U=4
sc2/68         20      .        T        A        71      PASS    N=2       F=5;U=4
sc2/24         24      .        A        G        38      PASS    N=2       F=5;U=4

Nota: El archivo tiene un tamaño de 64G y 690.000.000 de líneas. ¿Existe una solución eficiente ya que es un conjunto de datos bastante grande? Preferiría Awk y Sed ya que soy nuevo en el campo. Gracias por tu ayuda.

Respuesta:

Puedes probar esto

awk '{ if ( $5 != "." ) { print $0; } }' input_file.Txt > output_file.txt

Esto probará si la quinta columna no es un punto y mostrará la línea.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım