Пожалуйста, объясните, как использовать команду sort в Unix.

Пожалуйста, объясните, как использовать команду sort в Unix.

Я новичок в UNIX. Пожалуйста, объясните sortкоманду. У меня есть сомнения относительно разделителя полей сортировки. Например: sort -k2, 2 filename, Пожалуйста, объясните. Пожалуйста, приведите небольшой пример.

решение1

Синтаксическая ошибка в параметре sort -k2, 2 filename«Не должно быть разделителя пробелов в -k2,2параметре». Кроме того, это устранило бы возможный источник путаницы и/или ошибки (в зависимости от содержимого сортируемого файла), если бы к команде был добавлен либо словарный порядок, либо числовой параметр сортировки, чтобы было ясно, как следует сортировать.

Примеры

cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1

sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7

sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44

Объяснение

По умолчанию разделитель полей — это переход от пустого к пустому.
KEYDEF -k— это F[.C][OPTS][,F[.C][OPTS]] для начальной и конечной позиции, где F — номер поля, а C — позиция символа в поле. Оба являются исходными 1, а конечной позицией по умолчанию является конец строки.
-k1- первое поле
-k3- третье поле
-k1,3- начало первого поля, конец третьего поля
-k2,3- начало второго поля, конец третьего поля
-n- сравнение по числовому значению строки

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