2020-05-02

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 发热


image.png

image.png

image.png

awk 'NR==FNR{a[1]=0;nr=NR;} #处理第一个文件并存进数组a里
NR>FNR {for(n in a){ #处理第二个文件,对每一行都遍历数组a,
m=0; #赋值给m,为不存在数组里的元素做输出准备
if(1==n){ #如果存在元素1在数组里执行一下操作
m=1;print a[n]"\t"0; delete a[1];break #打印,删除该元素,跳出整个循环,即处理下一行
}
}
if(m==0){ #如果m==0,就是把不存在a中的元素输出
print 1"\t0\t0\t0\t"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[1]=0;nr=NR;}NR>FNR{for(n in a){m=0;if(1==n){m=1;print a[n]"\t"0;delete a[1];break}}if(m==0){print1"\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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。