Печать уникальных строк с помощью uniq, OS X Yosemite

617
sodiumnitrate

Я пытаюсь распечатать уникальные записи в столбце .csvфайла. Для этого я попробовал следующее:

awk -F "," '' dataCoarse.csv | uniq -u 

который просто печатает 6-й столбец как есть. Есть все еще повторяющиеся записи. Как я могу печатать только уникальные линии?

Изменить: я думаю, что мне нужно удалить пробелы, предшествующие или завершающие любой символ в каждой строке, или как- uniqто игнорировать их. Как я могу это сделать?

0
ты пробовал без тебя? Romeo Ninov 9 лет назад 0
Да, я думаю, что это не имеет значения. Я думаю, что некоторые строки имеют дополнительный пробел в конце, что делает сравнение недопустимым. sodiumnitrate 9 лет назад 0
Так что удалите этот символ, что-то вроде (до uniq) может сделать работу: sed 's / $ //'. Или раздеть это в пределах awk Romeo Ninov 9 лет назад 0
Я удалил все пробелы с помощью `sed 's / //'`, но он по-прежнему видит две идентичные записи как уникальные и распечатывает их отдельно. sodiumnitrate 9 лет назад 0
попробуйте сбросить их командой od -ax, чтобы проверить шестнадцатеричные значения Romeo Ninov 9 лет назад 0
Они тоже выглядят одинаково. sodiumnitrate 9 лет назад 0

1 ответ на вопрос

1
Alex Chojnacki

У меня тоже была эта пробема! Проверьте это решение аналогичной проблемы. По сути, вы хотите sortсначала направить свои данные, так как uniqтолько последовательные экземпляры данных считаются дубликатами.

awk -F "," '' dataCoarse.csv | sort -u должен дать вам результат, который вы ищете.

еще лучше сортировать -u будет сортировать и дать уникальный результат. Archemar 8 лет назад 0
Ты прав! Забыл об этом. Отредактировано по вашему предложению. Alex Chojnacki 8 лет назад 0