以下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
答案 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