次の形式の大規模データベースがあります。
0500506 gi|561108321|ref|NC_018143.2| 71446 0
0500506 gi|561108321|ref|NC_018143.2| 71447 0
0500508 gi|561108321|ref|NC_018143.2| 71449 0
0500509 gi|561108321|ref|NC_018143.2| 71447 0
私がしたいのは、次のように3番目の列にそれぞれの発生回数を含む新しいテーブルを作成することです。
71446 1 0500506
71447 2 0500506,0500509
71449 1 0500508
重要なのは、行全体が一致しないため、単一の列の値のみが一致することを確認したいと思います。次のいずれかの解決策が利用可能であるとします。 grep を使用した総発生回数の計算しかし、どうなるかはよくわかりません。
本当にありがとう、孟
答え1
awk
タスクに依存する可能性があります。
awk '{sep=$3 in a?",":"";b[$3]++;
a[$3]=a[$3]sep$1}; END{for (k in a) print k, b[k], a[k]}' file