переформатировать файл в bash

Файл, который я хотел бы проанализировать, выглядит следующим образом:

#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     

Существует заголовок, который следует пропустить. После этого мне просто нужно первые 3 поля (они разделены табуляцией, как

1 565286 SNP1-555149

, в этом поле есть несколько строк, но отображаются только первые две после заголовка ...

0
задан 29 February 2016 в 19:55

1 ответ

Скажите awk не соответствовать любой строке, запускающейся с # и безотносительно до конца строки; не соответствуйте пустым строкам; для строк, которые не имеют тех скороговорок, полей 1,2 и 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
0
ответ дан 1 March 2016 в 05:55
  • 1
    другие изменения корня зависят от Вашего BIOS для gpt, это может также быть установлено корень =' (hd0, gpt1) ' – xavier_fakerat 30 May 2017 в 10:07

Другие вопросы по тегам:

Похожие вопросы: