Linux
如何按列刪除文件內容的重複?
我有一個包含以下內容的文件:
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
我想刪除第二列底部的 repitition 線
(OG number)
。輸出不應包含包含相同的第三行OG number
。我正在使用
sort -u
,sort -k 2 -u
但它不起作用。
要將排序欄位限制在第二列(而不是從第二列到行尾),您必須指定結束位置:
$ 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
awk '!seen[$2]++' file
這將僅列印第二列中唯一的行。輸出:
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