awk实现两个文件的合并
文件A:
12 ab we h的
34 bf dwd d丰富
56 dejw csc 而从容
文件B:
12 ddd de 得分
34 ede ee 的风
56 fef de 发热
合并成C文件:
12 ab we h的 12 ddd de 得分
34 bf dwd d丰富 34 ede ee 的风
56 dejw csc 而从容 56 fef de 发热
awk 'NR==FNR{a[0;nr=NR;} #处理第一个文件并存进数组a里
NR>FNR {for(n in a){ #处理第二个文件,对每一行都遍历数组a,
m=0; #赋值给m,为不存在数组里的元素做输出准备
if(1在数组里执行一下操作
m=1;print a[n]"\t"1];break #打印,删除该元素,跳出整个循环,即处理下一行
}
}
if(m==0){ #如果m==0,就是把不存在a中的元素输出
print 0 #打印不存在a中的元素
}
}
END{
for(n in a){ #打印只存在文件1中,但不在文件2中的元素
print a[n]"\t"n"\t0\t0\t0"
}
}'
S24_motifs.gff_appropriate_gene_methylation veg_motifs.gff_appropriate_gene_methylation
merge_gene_methylation #输入和输出
awk 'NR==FNR{a[
0;nr=NR;}NR>FNR{for(n in a){m=0;if(
0;delete a[
1"\t0\t0\t0\t"$0}}END{for(n in a){print a[n]"\t"n"\t0\t0\t0"}}' S24_motifs.gff_appropriate_gene_methylation veg_motifs.gff_appropriate_gene_methylation >merge_gene_methylation