Естественная сортировка в обратном порядке? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь отсортировать текстовый файл следующим образом:

6 aaa
4 bbb
2 ccc
2 ddd

То есть каждая строка сортируется первой в порядке убывания числа (число указывает на количество вхождений слова справа), и если несколько слов повторяются одинаковое количество раз, я бы хотел отсортировать эти слова в алфавитном порядке.

Что у меня есть:

6 aaa
4 bbb
2 ddd
2 ccc

Когда я пытаюсь sort -nr | sort -Vон делает то, что я хочу, но в порядке возрастания.

2 ccc
2 ddd
4 bbb
6 aaa

Какой чистый способ сделать это?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

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

$ sort -k1,1nr file
6 aaa
4 bbb
2 ccc
2 ddd

-k1,1[OPTS] означает, что OPTS применяется только между 1-м и 1-м полем.Остальная часть строки сортируется в соответствии с глобальными параметрами заказа.В этом случае, поскольку никакие другие параметры не были переданы, это означает лексикографическую сортировку по умолчанию.

0 голосов
/ 18 октября 2018

Может быть, используя tac?(здесь не эксперт по оболочкам, просто вспоминаю дни ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...