다음 내용이 포함된 파일이 있습니다.
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
두 번째 열의 맨 아래에 있는 중복 행을 제거하고 싶습니다 (OG number)
. 출력에는 동일한 OG number
.
사용하고 sort -u
있는데 sort -k 2 -u
작동하지 않습니다.
답변1
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
답변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