Подтвердить что ты не робот

Как сортировать по двум полям (одна цифра, одна строка) одновременно с помощью встроенной программы "сортировки"?

У меня есть файл, скажем, "bigfile", с табличными данными следующей формы,

a1 b2 a3 1
b1 a2 c3 0
... и т.д.

Я хочу использовать встроенную программу "sort" на моей машине Linux, поэтому сортируйте этот файл по четвертому полю (числовому), а затем по первому полю одновременно. Несколько раз я просматривал страницы с людьми, и все, что я мог придумать, было,

sort -n -k4,4 -k1,1 bigfile

Есть ли способ сделать "сортировку" делать то, что я хочу, или мне нужно написать свою собственную программу?

Спасибо.

4b9b3361

Ответ 1

Из man-страницы:

POS - F [.C] [OPTS], где F - номер поля и символ C положение в поле; оба происхождения 1. Если ни один из элементов -t или -b не действует, символы в поле подсчитываются из начало предыдущего пробельные. OPTS - это один или несколько однобуквенные варианты заказа, которые переопределяют глобальные параметры заказа для этого ключа. Если ключ не указан, используйте вся строка в качестве ключа.

sort -k4,4n -k1,1 bigfile должен это сделать.

Другим вариантом будет sort -k1,1 bigfile | sort --stable -n -k4,4 Устойчивая сортировка означает, что привязки на четвертом поле разрешаются по исходной позиции, которая определяется первым проходом сортировки как первое поле.