Сортировка по ключу, указанному в bash - PullRequest
0 голосов
/ 02 ноября 2019

Итак, я пытаюсь отсортировать текстовый файл, назовите его tmp, который содержит 4 строки.

Первые строки:

table-name grade1 grade2 grade3
Richard 100 99 99
Fred 20 100 60
Alex 57 67 75

и сортируют его на основепо оценкам, если дано, или по умолчанию их имена. Если они запрашивают -n и -r, они также должны поменяться местами и пометиться численно.

С полем, которое они хотят отсортировать $sort.

То, что я пробовал до сих поресть варианты sort -k"$sort" -nr "$file", но он сортируется только по grade3, даже если я прошу его отсортировать grade1.

1 Ответ

2 голосов
/ 02 ноября 2019

С $sort в качестве номера столбца для сортировки по $file сделайте следующее:

sort -nr -t' ' -k${sort},${sort} "${file}"

И вот подтверждение концепции для 3 опубликованных вами строк:

$ cat testfile 
Richard 100 99 99
Fred 20 100 60
Alex 57 67 75
$ 

$ sort -nr -t' ' -k3,3 testfile 
Fred 20 100 60
Richard 100 99 99
Alex 57 67 75
$ 

$ sort -nr -t' ' -k4,4 testfile 
Richard 100 99 99
Alex 57 67 75
Fred 20 100 60
$

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...