сортировка по столбцу

сортировка по столбцу
10 awhdk;
14 hjoeow;
2  kdkld;
4  jkjdksl

Как отсортировать это по первому столбцу (т.е. по количеству)?

Я хотел бы получить такой результат:

14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld

Мне нужно, чтобы оба столбца были напечатаны на основе сортировки первого столбца.

решение1

Вы можете использовать -kдля указания того, где в строке ввода начинается и заканчивается ключ сортировки.

Вы используете -nопцию или добавляете nк спецификации ключа сортировки, чтобы запустить числовую сортировку вместо лексической сортировки по умолчанию. И -rдля обратной сортировки.

Здесь, для числовой сортировки, вам не нужно ограничивать ключ сортировки командой sort. Если вы это сделаете:

sort -rn file

Он будет воспринимать всю строку как число. 14 hjoeow;Например, строка будет восприниматься как 14число.

Вы можете сделать:

sort -bk 1,1rn file

Сортировать только по первому полю, но это ничего не изменит.

Команда для объединения строк — pasteс -sопцией. Вы можете указать разделитель с помощью -d. \0 — это специальное значение для разделителя, которое означаетприсоединиться без чего-либо между нимиИтак, чтобы получить ожидаемый результат:

sort -rn file | paste -sd '\0' -

POSIX pasteтребует передачи имени файла. -— это снова специальное значение, которое означаетстандартный вводpaste. В некоторых реализациях его можно опустить .

Связанный контент