不幸的是,我找不到任何帖子来解决我的具体问题。也许我使用了错误的字符串进行搜索。不过,问题是这样的。
我有一个有3列的文件。我想用下面的方式对这些列进行排序:这是我的排序后的样本列表(AA, BB, CC, DD, EE)
gene1 gene2 gene3
AA AA AA
BB CC BB
EE DD CC
我希望有一个这样的列表。
gene1 gene2 gene3
AA AA AA
BB BB
CC CC
DD
EE
所以我的想法是,我可以很容易地找出哪些样本可以用于所有基因,只用于一个基因或基因的组合。我如何用bash命令来实现这个功能?
非常感谢。
我将尝试。
#!/bin/bash
awk '
(NR == 1) {
print;
}
(NR > 1){
g[$1] = g[$2] = g[$3] = 1;
g1[NR] = $1;
g2[NR] = $2;
g3[NR] = $3;
}
END {
i1 = i2 = i3 = 2;
for (key in g) {
print (g1[i1] == key ? g1[i1++] : " ") " ",
(g2[i2] == key ? g2[i2++] : " ") " ",
(g3[i3] == key ? g3[i3++] : " ") " "
}
}' genes