0

我有一个包含很多日志文件的目录,例如sample_step1[_step2[_step3]].log

检查我运行的每个步骤的完成python ls_end.py情况,即

from os import listdir
from os.path import getsize, isfile

def end_sort(s): return s[::-1]


files = [i for i in listdir('.') if isfile(i) and not i.startswith('.')]
for i in sorted(files, key=end_sort):
    print("{:10.2f}\t{}".format(getsize(i)/1024, i))

bash中是否有任何替代方法可以从结尾对目录中的文件进行排序?

4

2 回答 2

2

这似乎是一种非常非正统的排序方法,但如果您util-linux安装了包含rev实用程序的包,则可以在 bash 中轻松完成:

ls | rev | sort | rev 

另一种可能性,这是一种稍微更传统的排序,将是:

ls | sort -t_ -k4 -k3,3 -k2,2

这将按正常顺序对每个step字段进行排序,但会将丢失的文件以step2不同step3的顺序放置,这可能是也可能不是您要查找的内容。

于 2017-02-10T04:00:25.953 回答
1

怎么样

ls | rev | sort | rev

?

于 2017-02-10T03:59:47.067 回答