найти уникальные строки только на основе одного поля

Есть ли простой способ найти уникальные строки в файле (возможно, переключатель для uniq?), но только с учетом определенной строки/поля?

Например, учитывая следующее:

1-3172  gi|493665175|dbj|AP012055.1|    100.000 136 0   0   115 250 64464   64329   6.78e-62    246
1-3172  gi|493665175|dbj|AP012055.1|    100.000 97  0   0   115 211 27885   27789   1.01e-40    176
1-3172  gi|500229602|gb|KC619528.1| 100.000 136 0   0   115 250 14268   14403   6.78e-62    246
1-3172  gi|514883433|gb|JX127248.1| 100.000 136 0   0   115 250 97570   97435   6.78e-62    246
1-3172  gi|514883433|gb|JX127248.1| 100.000 96  0   0   115 210 104503  104598  3.52e-40    174
1-3172  gi|514883433|gb|JX127248.1| 100.000 96  0   0   115 210 151929  151834  3.52e-40    174
1-3172  gi|514883433|gb|JX127248.1| 100.000 96  0   0   115 210 68038   67943   3.52e-40    174
1-3172  gi|514883433|gb|JX127248.1| 100.000 97  0   0   115 211 136361  136457  1.01e-40    176
1-3172  gi|514995431|gb|KC795685.1| 100.000 136 0   0   115 250 2358    2493    6.78e-62    246
1-3172  gi|514995435|gb|KC795686.1| 100.000 136 0   0   115 250 2358    2493    6.78e-62    246

Я хотел бы сохранить все строки с уникальными значениями gi во втором столбце (кстати, это табуляция).

Я вроде добился того, чего хочу:

$ head pnf_blastout95.txt | sort -k 2 | cut -f 2-3 | uniq -u

gi|500229602|gb|KC619528.1| 100.000
gi|514995431|gb|KC795685.1| 100.000
gi|514995435|gb|KC795686.1| 100.000

Но я хотел бы сохранить всю линейку в идеальном мире? Без сокращения uniq считает их уникальными из-за оценок и другой информации в конце строк.

Приведенное выше — это просто вывод head в эти файлы. Фактические файлы имеют размер 15 ГБ (!!!) (191494301 строк в одном из них - поэтому я хочу уменьшить его до уникальных совпадений), поэтому любое решение я мог бы сделать с ним как можно быстрее.


person Joe Healey    schedule 21.09.2016    source источник
comment
Полностью игнорировать повторяющиеся строки (или) заставлять их появляться один раз?   -  person Inian    schedule 21.09.2016
comment
Появляются один раз, так как они по-прежнему соответствуют программе, создавшей этот вывод.   -  person Joe Healey    schedule 21.09.2016
comment
Ах да, я не искал awk-решения неявно, поэтому не наткнулся на это с моим google-fu   -  person Joe Healey    schedule 21.09.2016
comment
Требует ли awk, чтобы файл сначала был отсортирован, чтобы это работало?   -  person Joe Healey    schedule 21.09.2016
comment
Не нужно. awk может творить чудеса самостоятельно   -  person Inian    schedule 21.09.2016