【发布时间】:2015-05-01 19:06:48
【问题描述】:
我有一个包含两列(140 万行)的文件,如下所示:
CLM MXL
0 0
0 1
1 1
1 1
0 0
29 42
0 0
30 15
我想计算每个可能的值组合的实例;例如,如果有 x 行,其中 CLM 列等于 0,MXL 列匹配 1,我想打印:
0 1 x
由于 CLM 列的最大值为 188,MXL 列的最大值为 128,因此我尝试在 awk 中使用嵌套的 for 循环,如下所示:
awk '{for (i=0; i<=188; i++) {for (j=0; j<=128; j++) {if($9==i && $10==j) {print$0}}}}' 1000Genomes.ALL.new.txt > test
但这只会打印出原始文件,这是有道理的,我只是不知道如何正确编写一个 for 循环,为每个值组合打印出一个文件,然后我可以 wc 或打印出一个每个组合的计数文件。 awk、bash 脚本、perl 脚本中的任何解决方案都会很棒。
【问题讨论】: