uniq не удаляет повторяющиеся записи

У меня есть файл с номером в каждой строке. Я пытаюсь найти отдельный набор чисел. Ниже приведен отрывок:

 550
 400
 4000
 400
 1900
 550
 5000
 400
 1500
 1900
 5000
 4000
 5000
 1900
 5000

Однако передача этого через uniq не удаляет все дубликаты. Количество строк уменьшено с 699 до 256, но по-прежнему есть несколько строк с 400 или 550 и т. д.

Я создал этот файл с помощью скрипта Python, поэтому я точно знаю, что в каждой строке есть пробел, за которым следует число, а затем \n. По крайней мере, это то, что я печатаю в коде.

Я не понимаю, что не так с файлом. Почему uniq не работает, как я думал?

(OS X Yosemite, питон 2.7)


person sodiumnitrate    schedule 27.04.2015    source источник
comment
@YOU uniq удаляет только последовательные дубликаты, данные необходимо отсортировать перед передачей через uniq. cat filename | sort | uniq будет работать.   -  person Hunter McMillen    schedule 28.04.2015


Ответы (1)


Перед вызовом uniq вам нужно sort свое содержимое, или вы можете просто использовать sort -u.

Со страницы руководства uniq:

uniq — сообщать или опускать повторяющиеся строки

Обратите внимание, что здесь написано повторяется, а не дублируется.

person Robby Cornelissen    schedule 27.04.2015
comment
Итак, uniq просто избавляется от последовательных дубликатов? - person sodiumnitrate; 28.04.2015