Bash для разрешения - PullRequest
       1

Bash для разрешения

8 голосов
/ 28 декабря 2011

У меня есть список разрешений (мобильные устройства, мониторы и т. Д.), И я хочу отсортировать их по разрешениям, используя bash / vim

У меня есть (не заказано):

1024 x 480
96 x 120
1024 x 600
100 x 120
800 x 1280
64 x 98
640 x 320
64 x 128
640 x 960
800 x 480
80 x 120

тогда, когда я делаю:

cat file | sort -u

я получаю:

100 x 120
1024 x 480
1024 x 600
640 x 320
640 x 960
64 x 128
64 x 98
800 x 1280
800 x 480
80 x 120
96 x 120

почему это так не сортируется и как я могу это сделать?

64 x 98
64 x 128
80 x 120
96 x 120
100 x 120
640 x 320
640 x 960
800 x 1280
800 x 480
1024 x 480
1024 x 600

Ответы [ 3 ]

16 голосов
/ 28 декабря 2011

вы можете использовать

sort -n -k1 -k3 file

Это выполнит сортировку на основе числового префикса, так что вы получите список, отсортированный по первому номеру

, это произведет

64 x 98
64 x 128
80 x 120
96 x 120
100 x 120
640 x 320
640 x 960
800 x 480
800 x 1280
1024 x 480
1024 x 600
1 голос
/ 28 декабря 2011
sort -n -k1 -k3  file
  • -n - принудительная сортировка чисел
  • -k говорит, что нужно отсортировать, используя первую часть, а затем третью часть строки
  • file - это имя файла. Нет смысла использовать cat. Использование:

    sort [OPTION] ... [FILE] ...

мужской сорт

0 голосов
/ 29 июня 2017

почему бы не использовать что-то вроде (важная часть здесь - sort аргументы):

xrandr -q | grep "   " | awk '{ print $1 }' | sort --unique --field-separator "x" -h
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...