Позвольте мне уточнить:
Предположим, у меня есть несколько ключевых слов с частотой их использования:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
Я хочу отсортировать эти данные по частоте в порядке убывания, и, если есть какие-то равные значения, следует использовать второй столбец в порядке возрастания.
sort -n -r foo.txt
Имеет ли первая часть, а затем второй столбец также reversed
:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
Как я могу добиться следующих результатов?
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
Я думаю, что должен использовать -k
аргумент, но я не могу понять, как!
Я хочу знать, как это можно сделать, используя только sort
команду bash
. Однако, если это невозможно сделать только с помощью sort
других команд, они должны быть совместимы с оболочкой Bourne.
text-processing
sort
Pouya
источник
источник
-g
опции GNU-sort (общие числовые) вместо-n
числовых сравнений безопаснее: она работает корректно как для чисел с плавающей запятой, так и для целых чисел.Ответы:
Укажите ключи сортировки отдельно с критериями:
Это указывает на то, что первый ключ сортируется по номерам в обратном порядке, а второй - по порядку сортировки по умолчанию .
Цитирование из сортировки POSIX :
Это даст:
источник