использование вида управляет в то время как строки в первых повторениях столбца

У меня есть файл данных следующим образом;

ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99 
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00

Я должен отсортировать эти строки w.r.t строки в первом столбце следующим образом;

ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99 
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00

Но когда я выполняюсь sort -k 1 data, Я вижу, что числовые значения во втором столбце отсортированы как порядок по возрастанию. Какая команда производят вышеупомянутую сортировку?

0
задан 6 March 2019 в 07:14

2 ответа

Существует две вещи, которые необходимо сделать.

Во-первых, sort -k 1 запускается в ключевом 1, но остановками по умолчанию в конце строки: к виду только на ключевом 1, Вам нужно -k 1,1

Во-вторых, GNU по умолчанию sort выполняет заключительный вид "последнего средства" на целой строке - для подавления этого, необходимо добавить --stable опция.

Так

$ sort --stable -k 1,1 data
ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00
2
ответ дан 26 October 2019 в 02:29

Это отсортирует по первому столбцу в порядке возрастания (как обычно), и затем по второму столбцу в убывающем (обратном) порядке. Второй столбец интерпретируется как число:

$ sort -k 1,1 -k 2nr,2 < in.txt
ALIC 5.55 2.65 3.45
ALIC 2.56 2.78 3.99
ALIC 1.00 1.00 1.00
ALIC 0.95 1.00 1.00
AMC4 3.55 3.66 4.88
AMC4 3.00 3.67 4.78
AMC4 0.50 1.00 1.00
AMC4 0.01 1.00 1.00

Можно хотеть добавить --debug флаг для наблюдения точно, на который ключи sort работает:

$ sort --debug -k 1,1 -k 2nr,2 < in.txt
ALIC 5.55 2.65 3.45
____
     ____
___________________
ALIC 2.56 2.78 3.99
____
     ____
___________________
ALIC 1.00 1.00 1.00
____
     ____
___________________
...
1
ответ дан 26 October 2019 в 02:29

Другие вопросы по тегам:

Похожие вопросы: