awk没有在输出文件

时间:2016-07-07 13:46:55

标签: awk

以下awk似乎与1问题配合得很好,标题行在输出中打印热点?我一直盯着这一刻没有运气。我错过了什么?谢谢你:)。

AWK

awk 'NR==FNR{for (i=1;i<=NF;i++) a[$i];next} FNR==1 || ($7 in a)' /home/panels/file1 test.txt | 
awk '{split($2,a,"-"); print a[1] "\t" $0}' | 
sort | 
cut -f2-> /home/panels/test_filtered.vcf

test.txt (在awk中用于提供过滤后的输出 - 仅包含一小部分数据,但会显示制表符分隔格式)

Chr Start   End Ref Alt
chr1    949608  949608  G   A

当前输出(没有标题)

chr1    949608  949608  G   A

所需的输出(有标题)

Chr Start   End Ref Alt
chr1    949608  949608  G   A

2 个答案:

答案 0 :(得分:2)

看起来标题会排序,并与您的数据混合在一起。一个简单的解决方案是:

... | { read line; echo $line; sort; } |

防止第一行进行排序。

答案 1 :(得分:0)

您可以组合脚本并将排序添加到awk并以这种方式处理标题。

$ awk 'NR==FNR{for(i=1;i<=NF;i++)a[$i]; next} 
        FNR==1{print "dummy\t" $0; next}
       $7 in a{split($2,b,"-"); print b[1] "\t" $0 | "sort" }' file1 file2 |
  cut -f2