首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字母数字文件名中使用排序

在字母数字文件名中使用排序
EN

Unix & Linux用户
提问于 2012-06-19 19:40:43
回答 2查看 5.2K关注 0票数 3

我正在排序一个find命令的结果,该命令查找当前目录中的所有文件:

代码语言:javascript
复制
find . -maxdepth 1 -type f -iname "*.flac" | sort

我期待的是这样一份清单:

代码语言:javascript
复制
./Track 1.flac
./Track 2.flac
./Track 3.flac
...
./Track 9.flac
./Track 10.flac
./Track 11.flac

我得到的是这样一张清单:

代码语言:javascript
复制
./Track 10.flac
./Track 11.flac
./Track 1.flac
./Track 2.flac
./Track 3.flac
...
./Track 9.flac

是否有sort选项,将它们按字母数字升序排列,以便正确地计算数字?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2012-06-19 19:51:50

尝试将-n-k2命令行选项传递给sort。也就是说,

代码语言:javascript
复制
find . -maxdepth 1 -type f -iname "*.flac" | sort -n -k2

当我将未排序的文件名放入文件“data.txt”并运行以下命令时:

代码语言:javascript
复制
sort -k2 -n data.txt

我得到这个作为输出:

代码语言:javascript
复制
./Track 1.flac
./Track 2.flac
./Track 3.flac
./Track 9.flac
./Track 10.flac
./Track 11.flac

备选方案说明:

代码语言:javascript
复制
-n (numeric sort) compare according to string numerical value
-k2 means sort on the 2nd field (and to the end of the line), 
    you could just restrict it to the second field with -k2,2

你没有问这个问题,我也没有在上面用过,但总有一天它会派上用场的。

代码语言:javascript
复制
-r reverse sort order 

手册页 for sort

请参阅我关于按不同字段排序的相关文章,按第三列排序,保留第一列和第二列完整(在linux中)解释了更多关于排序命令的内容。

票数 10
EN

Unix & Linux用户

发布于 2012-06-20 23:42:16

在zsh中,使用n 球限定符

代码语言:javascript
复制
print -l *.flag(n)
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/41149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档