【发布时间】:2016-10-05 23:37:17
【问题描述】:
我有一个包含数百万行和约 400 个制表符分隔列的大文件 (vcf)。为简洁起见,将列数很少的行粘贴在下面:
1/1:0,0,0:0:0,0,0,0 1/1:0,0,0:0:0,0,0,0 1/1:37,3,0:1:0,0,1,0 1/1:0,0,0:0:0,0,0,0
我想用分隔符: 分割每一列并打印第四组值(0,0,0,0 表示 col 1;0,0,0,0 表示 col 2;0,0, 1,0 表示第 3 列;依此类推)每列。
所以,期望的输出是:
Col1 Col2 Col3 Col4 .. Coln
0,0,0,0 0,0,0,0 0,0,1,0 0,0,0,0 .. a,b,c,d
这对于 awk 来说太疯狂了吗?我更喜欢在 awk 中执行此操作,因为我的文件在我们的 unix 服务器中。我可以在 R 中做到这一点,尽管我可以想象读取文件、拆分每列和处理等需要花费大量时间。所以我将不胜感激。谢谢。
可选:为了使这更困难,是否可以将四个值的前两个数字相加,并将四个值中的后两个相加得到 value1,value2 列?也许我要求太多了。对不起。在这种情况下,以下将是所需的输出:
Col1 Col2 Col3 Col4 .. Coln
0,0 0,0 0,1 0,0 .. a+b,c+d
【问题讨论】:
-
从第 10 列开始 - 为什么我必须滚动前 9 列才能看到牛肉?请只发布所需的部分作为输入和所需的输出。
-
@JamesBrown 好点。为清楚起见进行了编辑。谢谢。