Bash按文件名排序,如GNOME

时间:2012-04-27 00:02:18

标签: file bash sorting gnome ls

Bash真的很烦我用sort命令对它的文件进行排序的方式,似乎无法找到解决方法。当我使用GNOME按名称对文件进行排序时,它会按照我想要的方式显示它。我试图按照实际顺序进行排序,但是当在bash中排序时,10和1会弄乱一切。以下是bash如何对我的文件样本进行排序:

HeadsetBatteryBG_10@2x.png
HeadsetBatteryBG_11@2x.png
HeadsetBatteryBG_12@2x.png
HeadsetBatteryBG_1@2x.png
HeadsetBatteryBG_13@2x.png
HeadsetBatteryBG_14@2x.png
HeadsetBatteryBG_15@2x.png
HeadsetBatteryBG_16@2x.png
HeadsetBatteryBG_17@2x.png
HeadsetBatteryBG_2@2x.png
HeadsetBatteryBG_3@2x.png
HeadsetBatteryBG_4@2x.png
HeadsetBatteryBG_5@2x.png
HeadsetBatteryBG_6@2x.png
HeadsetBatteryBG_7@2x.png
HeadsetBatteryBG_8@2x.png
HeadsetBatteryBG_9@2x.png

我看到它在这里做了什么,但有什么地方可以在bash中对这样的列表进行排序,它应该如何排序?数字按实际数字顺序而不是它正在做的奇怪的事情。

2 个答案:

答案 0 :(得分:4)

尝试

sort -k2 -t_ -n [file]

将使用_作为字段分隔符(-t _)在第二个字段(-k2)上按数字(-n)排序。

(从SuperUser无耻地偷走)

答案 1 :(得分:2)

更简单,假设GNU排序:sort -V

   -V, --version-sort
          natural sort of (version) numbers within text
相关问题