Сортировка и удаление дубликата из файла со значениями символов и цифр c - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть этот файл:

1kg_1_100990624 rs768670248
rs3176861 rs1011842035
imm_12_2853458 rs951444582
1kg_14_80512920 rs902703491
8_41638322 rs56288115

Значения столбцов 1 ° отличаются, в то время как значения столбцов 2 ° всегда в одном и том же формате. Это очень долго, и я хочу отсортировать его, а затем удалить все дубликаты. Я использую sort -k1 file.txt, а затем sort -u file.txt, но он не удаляет дубликаты.

для «дубликата», я имею в виду:

1kg_14_80512920 rs902703491
1kg_14_80512920 rs950301252

в этом случае я беру только первую строку (1kg_14_80512920 rs902703491 ) и удалив все остальные строки (целые строки, как столбцы 1 ° и 2 °).

Как решить эту проблему?

1 Ответ

2 голосов
/ 25 февраля 2020

чтобы удалить дубликаты, попробуйте:

awk '!a[$1]++' file

Если вы хотите, чтобы результат был отсортирован, вы можете передать результат для сортировки:

awk .... file | sort

или выполнить первую сортировку затем удалите дупс:

sort file | awk '!a[$1]++'
...