
Tengo un archivo como este. Se llama archivo sam
@HD VN:1.0 SO:unsorted
@SQ SN:RNU2-1 LN:388
@SQ SN:RNU6-1100P LN:304
SRR959756.23 0 RNU2-1 56 0 6S32M12S * 0 0 CACAGCAATATCTGATACGTCCTCTATCCGAGGACAATTGGAATTCTCGG hhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhhhhhfhhhhhhghf AS:i:64 XS:i:64 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:32 YT:Z:UU
SRR959756.23 256 RNU2-2P 56 0 6S32M12S * 0 0 CACAGCAATATCTGATACGTCCTCTATCCGAGGACAATTGGAATTCTCGG * AS:i:64 XS:i:64 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:32 YT:Z:UU
SRR959756.23 256 RNU2-6P 55 0 6S32M12S * 0 0 CACAGCAATATCTGATACGTCCTCTATCCGAGGACAATTGGAATTCTCGG * AS:i:56 XS:i:64 XN:i:0 XM:i:4 XO:i:0 XG:i:0 NM:i:1 MD:Z:11T20 YT:Z:UU
Quiero filtrar el archivo en la columna 15, que es XM, así que escribí esto
awk '$15 ~ /^XM:i:0/ || $15 ~ /^XM:i:1/ || $15 ~ /^XM:i:2/ || $15 ~ /^XM:i:3/ {print $0}' file.txt
Al hacerlo, perdí los encabezados que comienzan con@(las primeras tres líneas). ¿Cómo puedo mantenerlos como están en la salida?
La salida debería ser así.
@HD VN:1.0 SO:unsorted
@SQ SN:RNU2-1 LN:388
@SQ SN:RNU6-1100P LN:304
SRR959756.23 0 RNU2-1 56 0 6S32M12S * 0 0 CACAGCAATATCTGATACGTCCTCTATCCGAGGACAATTGGAATTCTCGG hhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhhhhhfhhhhhhghf AS:i:64 XS:i:64 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:32 YT:Z:UU
SRR959756.23 256 RNU2-2P 56 0 6S32M12S * 0 0 CACAGCAATATCTGATACGTCCTCTATCCGAGGACAATTGGAATTCTCGG * AS:i:64 XS:i:64 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:32 YT:Z:UU
Además, las líneas de encabezado (que comienzan con @) pueden ser muchas más, como cientos. Solo usé las primeras 3 líneas.
Respuesta1
Probé esto y funcionó.
awk '$0 ~ /^@/ || $15 ~ /^XM:i:0/ || $15 ~ /^XM:i:1/ || $15 ~ /^XM:i:2/ || $15 ~ /^XM:i:3/ {print $0}' file.txt