Сортировать дубликаты по столбцам - PullRequest
0 голосов
/ 02 июля 2019

Пожалуйста, рассмотрите следующий пример:

Данные двух столбцов:

ti piace o no la apple p181026 07348
ti piace o no la apple p181026 07349
ti piace o no la apple p181026 07345

где p[0-9]\s[0-9] последовательность tab отделена от первого столбца.

Я хотел бы удалить дубликаты только по первому столбцу (алфавитная часть строки). Я пробовал с:

sort  -u -t$'\t' -k1 -nr inputfile > out

и с

sort -t$'\t' -k1 -nr inputfile | uniq > out 

безуспешно. Боюсь, я что-то упускаю из виду, но даже посоветовавшись с другими релевантными вопросами по этому вопросу, я все еще не могу понять это.

Заранее спасибо, что поделились своим опытом со мной.

Ответы [ 2 ]

1 голос
/ 02 июля 2019

С сортировкой GNU и bash:

sort -t $'\t' -k 1,1 -u file

Выход:

ti piace o no la apple  p181026 07348
0 голосов
/ 02 июля 2019

Поскольку ваш разделитель НЕ определен из образцов, поэтому я использую p[0-9]\s[0-9] регулярное выражение, упомянутое вами, не могли бы вы попробовать следующее.

awk 'match($0,/p[0-9]+ +[0-9]+]*/){a=substr($0,1,RSTART-1)} !array[a]++' Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...