extrai linhas com um valor de coluna específico com o comando awk

1

Eu gostaria de extrair todas as linhas começando com 1/1 na coluna "12345" e colocar as linhas em um novo arquivo (- > Newfile.vcf.gz) deixando o primeiro arquivo .vcf.gz intacto usando o comando awk. Meu arquivo é um arquivo. Vcf.gz, por favor me diga se eu preciso convertê-lo para outra coisa primeiro.

Por exemplo,

#CHROM      POS         ALT     12345   
1           345632      T       0/1:4,4:8:99:105,0,106
4           032184      C       1/1:46,9:55:99:99,0,1222
6           843290      A       0/1:67,20:87:99:336,0,1641

resultado esperado

4           032184      C       1/1:46,9:55:99:99,0,1222
    
por Sanna 23.11.2016 / 14:57

1 resposta

1

No awk você pode usar expressões regulares. /^1\/1/ corresponderá se a coluna 4 começar com 1/1 :

zcat file.vcf.gz | awk '$4 ~ /^1\/1/ {print}' | gzip -c > new.vcf.gz

Mas se / só puder ocorrer na coluna 4, por que não usar apenas grep ?

zgrep "1/1" file.vcf.gz | gzip  -c > new.vcf.gz
    
por 23.11.2016 / 15:22

Tags