按bash / perl结尾的数字对文件进行排序

时间:2015-08-19 16:05:45

标签: bash perl sorting

我试图按照以下格式对大量文件进行排序:

file-55_357-0.csv
file-55_357-1.csv
file-55_357-2.csv 
file-55_357-3.csv 
...

在bash或perl中有一种简单的方法吗?换句话说,有没有办法编写perl脚本,以便按数字顺序遍历所有这些脚本?例如,当我创建my @files时,我是否可以确保脚本在此排序中完成所有操作 - 如何创建my @sorted数组?我问,因为我想垂直地将所有这些文件附加在一起,并且它们需要按排序顺序排列。非常感谢!

2 个答案:

答案 0 :(得分:2)

您可以使用sort命令,该命令既不是bash的一部分,也不是perl的一部分。

使用input.txt中的输入数据:

file-55_357-123.csv
file-55_357-0.csv
file-55_357-21.csv 
file-55_357-3.csv 

从我的shell,(任何shell,而不仅仅是bash)我可以执行以下操作:

$ sort -t- -nk3 input.txt
file-55_357-0.csv
file-55_357-3.csv
file-55_357-21.csv
file-55_357-123.csv

-t选项指定一个分隔符,-n表示要比较数值(以便21在3之后而不是之前),而-k 3表示对第三个字段进行排序(每个分隔符。)

答案 1 :(得分:1)

SearchImage