根据文件名按升序创建文件列表

根据文件名按升序创建文件列表

我需要创建一个文件列表,以升序显示文件名。我的文件名具有文件模式:FILE.YYYYMMDD.XXX

例如:

$ ls -ltr
-rwxr-xr-x. 1 honle 1036 Apr 14  2020 FILE.20200102.001
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.002
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.003
-rwxr-xr-x. 1 honle 426832 Apr 10  2020 FILE.20200110.001
-rw-r--r--. 1 honle 426832 Apr 14 22:50 FILE.20200220.001
-rwxr-xr-x. 1 honle 1036 Apr 15 16:30 FILE.20200110.001

请注意输入为什么 FILE.20200120.002 在 FILE.20200220.001 之前。 FILE.20200120.002 已在 FILE.20200220.001 之前处理并到达当前目录。这就是为什么我需要根据 YYYYMMDD.XXX 文件名模式对其进行排序。

期望的输出:

FILE.20200102.001
FILE.20200102.002
FILE.20200102.003
FILE.20200110.001
FILE.20200120.002
FILE.20200220.001

创建时间文件不按顺序,因此我无法使用 ls -ltr。知道如何对它们进行排序吗?我正在使用Linux。

谢谢

答案1

如果问题是获取单列中的文件名而不是ls生成的多列格式的文件名,那么您可以使用-1 (“减一”)选项ls

ls -1

文件名将按名称排序。


printf '%s\n' FILE.*

假设该模式FILE.*匹配所有相关的文件名,而不是其他,上面的命令还将按字典顺序打印文件名,每个文件名单独占一行,这似乎就是您想要的。

相关内容