次の内容を含むファイルがあります。
WP_021815421.1 OG5_132922 deth|YP_182312 3 -07 42.35 81.7
WP_021815427.1 OG5_128110 rbal|NP_868155 1 -55 50.72 53.2
WP_012456834.1 NO_GROUP bsui|NP_700181 8 -53 48.18 62
WP_084606289.1 OG5_132922 aful|NP_069703 5 -28 57.00 92.6
WP_084606284.1 OG5_153487 bpse|YP_331974.1 6 -78 48.87 91.4
2番目の列の下部にある重複行を削除したいと思います(OG number)
。出力には同じOG number
。
使用していますsort -u
がsort -k 2 -u
動作しません。
答え1
awk '!seen[$2]++' file
これにより、2番目の列の一意の行のみが印刷されます。出力:
WP_021815421.1 OG5_132922 deth|YP_182312 3 -07 42.35 81.7
WP_021815427.1 OG5_128110 rbal|NP_868155 1 -55 50.72 53.2
WP_012456834.1 NO_GROUP bsui|NP_700181 8 -53 48.18 62
WP_084606284.1 OG5_153487 bpse|YP_331974.1 6 -78 48.87 91.4
答え2
ソートフィールドを2番目の列(2番目の列から行の終わりまでではない)に制限するには、終了位置を指定する必要があります。
$ sort -uk2,2 file
WP_012456834.1 NO_GROUP bsui|NP_700181 8 -53 48.18 62
WP_021815427.1 OG5_128110 rbal|NP_868155 1 -55 50.72 53.2
WP_021815421.1 OG5_132922 deth|YP_182312 3 -07 42.35 81.7
WP_084606284.1 OG5_153487 bpse|YP_331974.1 6 -78 48.87 91.4