特定の列のすべての一意の文字列を一覧表示する

特定の列のすべての一意の文字列を一覧表示する

以下のような巨大なvcf.gzファイルに何があるのか​​わかりません。

CHROM       POS         ALT     12345       
1           345632      T       0/1:4,4:8:99:105,0,106
4           032184      C       1/1:46,9:55:99:99,0,1222
6           843290      A       0/1:67,20:87:99:336,0,1641
7           743290      C       0/1:37,20:57:99:336,0,2641
8           329283      T       0/2:99:21:253,0,290:11,10
9           789320      C       2/2:99:21:253,0,290:11,10

すべて抽出したいユニーク":" の前にある 4 番目の列の値です。この場合は次のようになります。

0/1
1/1
0/2
2/2

おすすめメニューとは何ですか?

ベストアンサー1

以下を使用して、awk4番目の列の形式が正しいことを確認してください。

awk 'match($4, /^[0-9]+\/[0-9]+:/) {
       c = substr($4, RSTART, RLENGTH-1)
       if (!seen[c]++) print c
     }'

おすすめ記事