Файл не сортируется после сортировки - PullRequest
0 голосов
/ 28 июня 2018

У меня проблема с сортировкой моего файла. Мой файл выглядит так

geom-10-11.com 1 geom-1-10.com 9 geom-1-11.com 10 geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-2-10.com 8 geom-2-11.com 9 geom-2-3.com 1 geom-2-4.com 2 geom-2-5.com 3 geom-2-6.com 4 geom-2-7.com 5 geom-2-8.com 6 geom-2-9.com 7 geom-3-10.com 7 geom-3-11.com 8 geom-3-4.com 1 geom-3-5.com 2 geom-3-6.com 3 geom-3-7.com 4 geom-3-8.com 5 geom-3-9.com 6 geom-4-10.com 6 geom-4-11.com 7 geom-4-5.com 1 geom-4-6.com 2 geom-4-7.com 3 geom-4-8.com 4 geom-4-9.com 5 geom-5-10.com 5 geom-5-11.com 6 geom-5-6.com 1 geom-5-7.com 2 geom-5-8.com 3 geom-5-9.com 4 geom-6-10.com 4 geom-6-11.com 5 geom-6-7.com 1 geom-6-8.com 2 geom-6-9.com 3 geom-7-10.com 3 geom-7-11.com 4 geom-7-8.com 1 geom-7-9.com 2 geom-8-10.com 2 geom-8-11.com 3 geom-8-9.com 1 geom-9-10.com 1 geom-9-11.com 2

Итак, я использовал sort -k1.6 -k2 -n и получил

geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10 geom-2-3.com 1 geom-2-4.com 2 geom-2-5.com 3 geom-2-6.com 4 geom-2-7.com 5 geom-2-8.com 6 geom-2-9.com 7 geom-2-10.com 8 geom-2-11.com 9 geom-3-4.com 1 geom-3-5.com 2 geom-3-6.com 3 geom-3-7.com 4 geom-3-8.com 5 geom-3-9.com 6 geom-3-10.com 7 geom-3-11.com 8 geom-4-5.com 1 geom-4-6.com 2 geom-4-7.com 3 geom-4-8.com 4 geom-4-9.com 5 geom-4-10.com 6 geom-4-11.com 7 geom-5-6.com 1 geom-5-7.com 2 geom-5-8.com 3 geom-5-9.com 4 geom-5-10.com 5 geom-5-11.com 6 geom-6-7.com 1 geom-6-8.com 2 geom-6-9.com 3 geom-6-10.com 4 geom-6-11.com 5 geom-7-8.com 1 geom-7-9.com 2 geom-7-10.com 3 geom-7-11.com 4 geom-8-9.com 1 geom-8-10.com 2 geom-8-11.com 3 geom-9-10.com 1 geom-9-11.com 2 geom-10-11.com 1

Но когда я попытался использовать uniq -f1 или sort -k1.6 -k2 -n -u , я получил такой же длинный отсортированный вывод. Поэтому я использовал sort -k1.6 -k2 -n -c и получите сообщение о том, что этот файл поврежден

(sort: glist2:2: disorder: geom-1-2.com 1).

Я пытался использовать только sort -k2 -n -u, но получил

geom-10-11.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10

Это не то, что мне нужно, мне нужно иметь

geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10

Так что мне нужно иметь в начале geom-1-X, а не geom-10-X. Было бы здорово использовать juste uniq, потому что у меня есть более крупные файлы с большим количеством геометрий (около тысячи линий), но с одинаковой структурой. Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать это:

grep -E '^geom-1-' file | sort -k1.8n

grep фильтрует нужные вам строки. sort численно сортирует первое поле, начиная с 8-го символа.

...