不幸的是,我找不到任何针对我的特定问题的帖子。也许我在搜索中使用了错误的字符串。然而,问题来了:
我有一个包含 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