LINUX.ORG.RU

сортировка в Bash

 , ,


0

1

Как сделать так, чтобы каждая строка была уникальна после сортировки? Вот пример данных файл 123.txt:

987654321!987654321|123456789

987654321!987654321|1234567890

123456789!123456789|123456789

123456789!123456789|123456789123

123456789!123456789|123456789123456

123456789!123456789|123456789123456789

Должно быть на выходе так:

987654321!987654321|123456789

123456789!123456789|123456789


Ответ на: комментарий от erfea

будет вот так в файле: 987654321!987654321|123456789 987654321!987654321|1234567890 123456789!123456789|123456789 123456789!123456789|123456789123 123456789!123456789|123456789123456 123456789!123456789|123456789123456789

Denai
() автор топика
$ man 1 sort
...
       -k, --key=KEYDEF
              sort via a key; KEYDEF gives location and type
...
       -t, --field-separator=SEP
              use SEP instead of non-blank to blank transition
...
       -u, --unique
              with -c, check for strict ordering; without -c, output  only  the  first  of  an
              equal run
...
       KEYDEF  is  F[.C][OPTS][,F[.C][OPTS]]  for  start and stop position, where F is a field
       number and C a character position in the field; both are origin 1, and the  stop  posi‐
       tion  defaults  to  the line's end.  If neither -t nor -b is in effect, characters in a
       field are counted from the beginning of the preceding whitespace.  OPTS is one or  more
       single-letter  ordering  options  [bdfgiMhnRrV], which override global ordering options
       for that key.  If no key is given, use the entire line as the key.  Use --debug to  di‐
       agnose incorrect key usage.

anonymous
()
Ответ на: комментарий от Denai

Как сделать так, чтобы каждая строка была уникальна после сортировки?

ты хотябы вставь эти данные в .txt и введи этот sort -u и посмотри что будет, потом пиши

Сделает ровно то что написано в первой цитате.

erfea ★★★★★
()
Ответ на: комментарий от erfea

введи эти данные в файл 1.txt, далее вводи sort -u 1.txt > 2.txt и у тебя будут абсолютно теже значения, а именно 5 строк

Denai
() автор топика
Ответ на: комментарий от Denai

Т.е. тебе надо отсортировать и профильтровать не строки, а по отдельннуой части из них? Ты заведемо хреново офомил пост, некорректно сформулировал задачу, получил верный ответ на свой заведемо некорректный вопрос и теперь хамишь? Красавчик 👍

erfea ★★★★★
()
Ответ на: комментарий от Denai

Оформи пост, для начала чтобы было читаемо и нормально сформулируй что конкретно тебе надо, а то может получиться так что на одних входных данных делает что тебе надо, на других нет. И может быть, тебе кто-то поможет. Хамло.

erfea ★★★★★
()
Ответ на: комментарий от anonymous

Я знаю, что здесь я никому не интересен, поэтому просто оставлю это здесь

$ cat << EOF | sort -t'|' -k1,1 -u
> 987654321!987654321|123456789
> 987654321!987654321|1234567890
> 123456789!123456789|123456789
> 123456789!123456789|123456789123
> 123456789!123456789|123456789123456
> 123456789!123456789|123456789123456789
> EOF
123456789!123456789|123456789
987654321!987654321|123456789
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.