【发布时间】:2015-09-24 21:30:16
【问题描述】:
我在一个目录中有 12 个文件,每个文件有 4 列。第一列是基因名称,其余 3 列是计数列。所有文件都在同一个目录中。我想为每个文件提取 1,4 列(总共 12 个文件)并将它们粘贴到一个输出文件中,因为每个文件的第一列都是相同的,所以输出文件应该只有一个第一列,其余的将是其次是每个文件的第 4 列。每个文件的第一列是相同的。我不想在这里使用 R。我是 awk 的忠实粉丝。所以我尝试了类似下面的方法,但没有成功
我的输入文件看起来像 输入文件1
ZYG11B 8267 16.5021 2743.51
ZYG11A 4396 0.28755 25.4208
ZXDA 5329 2.08348 223.281
ZWINT 1976 41.7037 1523.34
ZSCAN5B 1751 0.0375582 1.32254
ZSCAN30 4471 4.71253 407.923
ZSCAN23 3286 0.347228 22.9457
ZSCAN20 4343 3.89701 340.361
ZSCAN2 3872 3.13983 159.604
ZSCAN16-AS1 2311 1.1994 50.9903
输入文件2
ZYG11B 8267 18.2739 2994.35
ZYG11A 4396 0.227859 19.854
ZXDA 5329 2.44019 257.746
ZWINT 1976 8.80185 312.072
ZSCAN5B 1751 0 0
ZSCAN30 4471 9.13324 768.278
ZSCAN23 3286 1.03543 67.4392
ZSCAN20 4343 3.70209 318.683
ZSCAN2 3872 5.46773 307.038
ZSCAN16-AS1 2311 3.18739 133.556
输入文件 3
ZYG11B 8267 20.7202 3593.85
ZYG11A 4396 0.323899 29.8735
ZXDA 5329 1.26338 141.254
ZWINT 1976 56.6215 2156.05
ZSCAN5B 1751 0.0364084 1.33754
ZSCAN30 4471 6.61786 596.161
ZSCAN23 3286 0.79125 54.5507
ZSCAN20 4343 3.9199 357.177
ZSCAN2 3872 5.89459 267.58
ZSCAN16-AS1 2311 2.43055 107.803
上面的期望输出
ZYG11B 2743.51 2994.35 3593.85
ZYG11A 25.4208 19.854 29.8735
ZXDA 223.281 257.746 141.254
ZWINT 1523.34 312.072 2156.05
ZSCAN5B 1.32254 0 1.33754
ZSCAN30 407.923 768.278 596.161
ZSCAN23 22.9457 67.4392 54.5507
ZSCAN20 340.361 318.683 357.177
ZSCAN2 159.604 307.038 267.58
ZSCAN16-AS1 50.9903 133.556 107.803
在这里,您可以在每个文件的第一列和 4 列上方看到,因为每个文件的第一列是相同的,所以我只想保留它一次,其余的输出将具有每个文件的第 4 列。我刚刚展示了 3 个文件。它应该同时适用于目录中的所有文件,因为所有文件都有类似的命名约定,例如 file1_quant.genes.sf file2_quant.genes.sf , file3_quant.genes.sf
每个文件的第一列相同,但其余列中的计数不同。我的想法是创建一个输出文件,该文件应该包含所有文件的第一列和第四列。
awk '{print $1,$2,$4}' *_quant.genes.sf > genes.estreads
有什么注意事项吗?
【问题讨论】:
-
给定输入的期望输出是什么?
-
@Sobrique 我已经修改了查询
-
您对文件名或输出有任何排序限制吗? (例如,文件应该按字母顺序完成,还是任何顺序都可以?结果值是否应该按数字排序?)
-
如果您不想使用它,为什么要用 [r] 标记您的问题?
-
啊抱歉打错了,但现在我看到标签被删除了,谢谢