Рейтинг:0

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

флаг dk

В чем разница между сортировать -t'' -k1,1n -k2,2n и сортировать -t'' -k1,2n?

Не могли бы вы привести примеры?

Я пытался:

logan@logan-mainPC:~/my-test/learn-sort$ cat myage 
мой возраст 1
мой возраст 100
мой возраст 2
мой возраст 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать -k2,3
мой возраст 1
мой возраст 100
мой возраст 2
мой возраст 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать -k2,2 -k3,3
мой возраст 1
мой возраст 100
мой возраст 2
мой возраст 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать -k2,2 -k3,3n
мой возраст 1
мой возраст 2
мой возраст 100
мой возраст 200

Я думаю сортировать -k2,3 сортирует «возраст 1», «возраст 100», ... и сортировать -k2,2 -k3,3 сортирует «возраст», «возраст»,... затем «1», «100», .... Поскольку все они обрабатывают столбцы как строки, они дают одинаковый результат.

Но сортировать -k2,2 -k3,3n дает другой результат, потому что он обрабатывает столбец 3 как числа.

Но потом:

logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать -k2,3n
мой возраст 1
мой возраст 100
мой возраст 2
мой возраст 200

что странно. Выяснилось, что причина в том, что столбец 2 не является числом.

logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать --debug -k2,3n
sort: с использованием правил сортировки «en_AU.UTF-8»
sort: ключ 1 является числовым и охватывает несколько полей
мой возраст 1
   ^ не соответствует ключу
________
мой возраст 100
   ^ не соответствует ключу
__________
мой возраст 2
   ^ не соответствует ключу
________
мой возраст 200
   ^ не соответствует ключу
__________

Спасибо.

24601 avatar
флаг in
прочитайте [спросите], а затем [отредактируйте] свой вопрос в соответствии с подробностями исследования, которое вы провели, чтобы найти ответ.
Logan Lee avatar
флаг dk
@ 24601 да, я отредактировал вопрос, спасибо!
Рейтинг:0
флаг dk

Я могу видеть, что происходит, --отлаживать флаг.

сортировать -k2,3 действительно сортирует «возраст 1», «возраст 100»,...

logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать --debug -t' ' -k2,3
sort: с использованием правил сортировки «en_AU.UTF-8»
мой возраст 1
   _____
________
мой возраст 100
   _______
__________
мой возраст 2
   _____
________
мой возраст 200
   _______
__________

сортировать -k2,2 -k3,3 сортирует по "возрасту",... затем "1", "100",...

logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать --debug -t' ' -k2,2 -k3,3
sort: с использованием правил сортировки «en_AU.UTF-8»
мой возраст 1
   ___
       _
________
мой возраст 100
   ___
       ___
__________
мой возраст 2
   ___
       _
________
мой возраст 200
   ___
       ___
__________

Наконец

logan@logan-mainPC:~/my-test/learn-sort$ cat myage | сортировать --debug -t' ' -k2,2 -k3,3n
sort: с использованием правил сортировки «en_AU.UTF-8»
мой возраст 1
   ___
       _
________
мой возраст 2
   ___
       _
________
мой возраст 100
   ___
       ___
__________
мой возраст 200
   ___
       ___
__________

обрабатывает третий столбец как числа.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.