按名称对文件进行数字排序,然后按BASH中的父目录排序

时间:2019-01-04 23:21:33

标签: bash sorting

因此,我面临一个非常尖锐的问题。我有一堆目录以数字(0、1、2等)命名,其中包含的文件也以数字命名。

当我使用find . -type f | sort -nr时,我得到的文件列表已排序,但先按父目录排序,然后再按文件名排序。

赞:

/0/0.png
/0/1.png
/0/2.png
/1/0.png
/1/1.png
/1/2.png

代替这个(我想要):

/0/0.png
/1/0.png
/0/1.png
/1/1.png
/0/2.png
/1/2.png

我怎样才能发生最后的行为?

预先感谢!

2 个答案:

答案 0 :(得分:0)

请尝试这个

find . -type f | sort -n -t "/" -k3

答案 1 :(得分:0)

使用/作为分隔符,首先按文件名排序,然后按目录名称排序:

find . -type f | sort -t/ -k3,3n -k2,2n