Сортировка и невидимые символы

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Grih65kop
Сообщения: 145

Сортировка и невидимые символы

Сообщение Grih65kop »

Сортирую и вывожу без дублей

Код: Выделить всё

cat file
2006
2006
2007
2007
2008
2008
2009
2010


Код: Выделить всё

sort file | uniq
2006
2007
2007
2008
2008
2009
2010


Так в чем же дело с 2007 и 2008?

hexdump -cb file

Код: Выделить всё

0000000   2   0   0   6  \n   2   0   0   7  \n   2   0   0   7      \n
0000000 062 060 060 066 012 062 060 060 067 012 062 060 060 067 040 012
0000010   2   0   0   8  \n   2   0   0   8      \n   2   0   0   9  \n
0000010 062 060 060 070 012 062 060 060 070 040 012 062 060 060 071 012
0000020   2   0   1   0  \n
0000020 062 060 061 060 012
0000025


Вот и виновник, после второго числа стоит ещё один символ.

Вопрос вот в чем, можно ли сортировать текст (и выводить без дублей) так как он есть, что бы программа не брала во внимания подобного рода невидимые символы?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Сортировка и невидимые символы

Сообщение bormant »

Код: Выделить всё

$ sort -g -u
или

Код: Выделить всё

$ sort -n -u
должны справиться.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Сортировка и невидимые символы

Сообщение SLEDopit »

bormant писал(а):
31.03.2012 20:20
$ sort -g -u
$ sort -n -u
Это годится только для числовых значений. Сортировать текст так не получится.
Grih65kop писал(а):
31.03.2012 20:11
Вопрос вот в чем, можно ли сортировать текст (и выводить без дублей) так как он есть, что бы программа не брала во внимания подобного рода невидимые символы?
Если речь идёт именно про текст в общем (а не числа, как частный пример), то можно убирать эти символы перед сортировкой.
В случае с вашим примером это будет выглядеть так:

Код: Выделить всё

sed 's/\s*$//' 1 | sort -u
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали: