Файл, который я хотел бы проанализировать, выглядит следующим образом:
#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
, в этом поле есть несколько строк, но отображаются только первые две после заголовка ...
Скажите 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