bash コマンドを使用します。

bash コマンドを使用します。

次の表形式のファイルがあります。

abc00000000     1   643301  643374  Ile AAT 0   0   80.6    
abc00000000     2   1278112 1278193 Ser GCT 0   0   86.2    
abc00000000     3   1278382 1278463 Ser GCT 0   0   87.4    
abc00000000     4   1282753 1282824 Glu TTC 0   0   70.9    
abc00000001     1   138441  138512  Glu TTC 0   0   70.9    
abc00000001     2   186490  186571  Leu AAG 0   0   71.6
abc00000002     1   1342954 1343060 Tyr GTA 1342991 1343024 78.3    
abc00000002     2   1359693 1359620 Val AAC 0   0   75.1    
abc00000002     3   943029  942957  Val CAC 0   0   73.2

最初の2列にのみ興味があります。

最初の列はDNA足場の名前を表し、2番目の列はこれらの足場で何かが異なることが発生した回数です(毎回異なる突然変異であるとします)。

各足場の突然変異の数を提供するコマンドを見つけようとしています。したがって、足場「abc00000000」には4つの突然変異があり、足場「abc00000001」には2つの突然変異があります。

「awk」が機能する可能性がありますが、正しいコマンドが見つかりません。ありがとう

ベストアンサー1

各足場名が最初の列に表示される回数を数えたいと思います。その場合は、次のようにできます。

$ sort file | awk '{print $1}' | uniq -c
4 abc00000000
2 abc00000001
3 abc00000002

または、ファイルがカーソルでソートしたくない場合:

$ awk '{a[$1]++}END{for(i in a){print i, a[i]}}' file 
abc00000000 4
abc00000001 2
abc00000002 3

おすすめ記事