formata o arquivo no bash

0

Um arquivo que gostaria de analisar parece

#header
#header2
#header 3
# header


 1       565286  SNP1-555149     C       T       .       PASS    AC=4270AF=1.00;AN=4270;set=broad       GT      1/1   /1     1/1     1/1     1/1     1/1


1       534247  SNP1-524110     C       T       .       PASS    AC=36;AF=7.772e-03;AN=4632;set=Intersection     GT      0/0     0/0     0/0     

Existe um cabeçalho - que deve ser ignorado. Depois eu só preciso do primeiro campo 3 (eles são tabulados como

1 565286 SNP1-555149

existem várias linhas no campo, mas apenas as duas primeiras após o cabeçalho são mostradas ...

    
por user3069326 29.02.2016 / 16:06

1 resposta

0

Diga ao awk para não combinar nenhuma linha que comece com # e o que quer que seja até o final da linha; não coincide com linhas vazias; para linhas que não possuem esses padrões, imprima os campos 1,2 e 3.

$> cat inputData.txt                                                           
    #header
    #header2
  #  header 3
   # header


 1       565286  SNP1-555149     C       T       .       PASS    AC=4270AF=1.00;AN=4270;set=broad       GT      1/1   /1     1/1     1/1     1/1     1/1


1       534247  SNP1-524110     C       T       .       PASS    AC=36;AF=7.772e-03;AN=4632;set=Intersection     GT      0/0     0/0     0/0     
$> awk '!/^#.+$/ && !/^$/ { print $1,$2,$3  } ' inputData.txt                  
1 565286 SNP1-555149
1 534247 SNP1-524110
    
por Sergiy Kolodyazhnyy 29.02.2016 / 16:54