Input_file:
15 47123466 rs98765576 C T* 100 PASS . GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0
文件1:
15 47123466 rs98765576 C T
文件2:
11 123345 rs9173547 A G
输出:
#IP_CHR IP_POS IP_ID IP_REF IP_ALT OP_CHR OP_POS OP_ID OP_REF OP_ALT OP_QUAL OP_FILTER OP_INFO file1_name file2_name
15 47123466 rs98765576 C T C T* 100 PASS . GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 YES NO
如果来自输入文件(列1,2,3,4)的条目存在于文件1&file2,那么输出应该有input_file(列1,2,3,4)和file1&文件2名称作为标题;是/否";下面的文件名标题
我试过这个
awk 'NR==FNR{firstfile[$1,$2,$4];next} ($1,$2,$4) in firstfile { print $1"t"$2"t"$3"t"$4"t"$5"t"$6"t"$7"t"FILENAME }'
giving output as 15 47123466 rs98765576 C T C T* 100 PASS . GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 file1_name
使用显示的示例,尝试;请尝试以下awk
程序。
awk '
BEGIN{
s1="#IP_CHR IP_POS IP_ID IP_REF IP_ALT OP_CHR OP_POS OP_ID OP_REF OP_ALT OP_QUAL OP_FILTER OP_INFO "
}
{
key=($1 FS $2 FS $3 FS $4)
}
ARGIND<3{
arr[key]
file=(file?file OFS:"")FILENAME
next
}
FNR==1{
print s1,file
}
{
val=""
for(j in arr){
val=(val?val OFS:"")(key==j?"YES":"NO")
}
print $0,val
}
' file1 file2 input_file