bash为解决方案排序

aki*_*aki 8 sorting bash

我有一个分辨率列表(移动设备,监视器等...),我想通过使用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
Run Code Online (Sandbox Code Playgroud)

然后当我这样做:

cat file | sort -u
Run Code Online (Sandbox Code Playgroud)

我得到:

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
Run Code Online (Sandbox Code Playgroud)

为什么它不像这样排序,我怎么能这样做?

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
Run Code Online (Sandbox Code Playgroud)

Mah*_*eTo 16

您可以使用

sort -n -k1 -k3 file
Run Code Online (Sandbox Code Playgroud)

这是基于数字前缀的排序,因此您将获得按第一个数字排序的列表

这会产生

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
Run Code Online (Sandbox Code Playgroud)

  • `cat`不是必需的,只需要`sort -n -k1 -k3 file`. (8认同)