将计数文件合并到一个文件中并保持零值

时间:2017-12-13 22:51:11

标签: bash awk file-processing

我有多个计数文件,如下所示:

 File1.tab
 6       10      0
 49      0       53
 15      0       15
 0       0       0
 0       0       0
 0       0       0

其他档案:

File2.tab
 3       1       2
 29      0       29
 4       0       4
 0       0       0
 0       0       0
 0       0       0

我有超过30个文件,我想将每个文件的第二列合并为一个大文件。

我知道这个问题已经被问过了,我在这里找到了类似的How to combine column from multiple text files?

我使用上一个问题的答案来解决我的问题:

paste  *.tab | awk '{i=2;while($i); {printf("%d ",$i);i+=3}printf("\n")}'

问题是没有打印零值,我得到这样的结果:

10 1

我想要这样的事情:

10 1
0 0
0 0
0 0
0 0
0 0

我嘲笑了printf格式说明符,但都没有。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你选择了一个糟糕的答案"建立在。试试这个:

paste  *.tab |
awk '{for (i=2; i<=NF; i+=3) printf "%s%s", (i>2?OFS:""), $i; print ""}'