用于按特定顺序合并3个文件的Bash代码

时间:2018-03-16 09:02:28

标签: linux bash dataframe awk sed

我正在使用samtools(Seq工具)并生成了标签文件。

(A)我最终会获得两个标签文件: - 文件A仅包含1个值100000 文件B仅包含1个值110000 文件C在第1列中包含两个名称: 例如 名字A. 名字B. 文件D(输出文件),它是按此顺序合并所有3个文件的

Column1 Column2 基因A 100000 基因B 110000

非常感谢先生......

问候 高拉夫

1 个答案:

答案 0 :(得分:0)

awk + paste 解决方案:

示例文件:

$ head f[123]
==> f1 <==
gene A
gene B

==> f2 <==
100
200
300
400

==> f3 <==
1000
2000
3000
4000
awk -v OFS='\t' 'NR==FNR{ a[NR]=$0; next }{ $0=(a[FNR%2==0? 2:1] OFS)$0 }1' f1 <(paste f2 f3)

输出:

gene A  100 1000
gene B  200 2000
gene A  300 3000
gene B  400 4000