怎么做OSX中的`sort -V`?

bas*_*ibe 4 linux sorting macos bash cross-platform

我为Linux bash shell编写了一个脚本.

一行获取文件名列表并对其进行排序.该列表如下所示:

char32.png char33.png [...] char127.png
Run Code Online (Sandbox Code Playgroud)

它从32到127. ls此列表的默认排序是这样的

char100.png char101.png [...] char32.png char33.png [...] char99.png
Run Code Online (Sandbox Code Playgroud)

幸运的是sort,有一个方便的-V开关可以正确地对列表进行排序(如第一个例子中所示).

现在,我必须将此脚本移植到OSX,并且sort在OSX中缺少-V交换机.

您是否对如何正确排序此列表有一个聪明的想法?

Nat*_*ate 5

它们都是以固定字符串开头(char在您的示例中)?如果是这样:

sort -k1.5 -n
Run Code Online (Sandbox Code Playgroud)

-k1.5意味着从第5个字符开始对第一个键(在您的示例中只有一个键)进行排序,这将是第一个数字.-n意味着数字排序.这也适用于Linux.