Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting ls无法按所需方式排序文件_Sorting_Ls - Fatal编程技术网

Sorting ls无法按所需方式排序文件

Sorting ls无法按所需方式排序文件,sorting,ls,Sorting,Ls,我有一个脚本,该脚本使用输出#创建文件。root,其中#是一个数字。当我在目录中执行ls时,它选择以一种奇怪的方式对文件排序: output_1.root output_10.root output_100.root output_11.root output_2.root 等等 如何使文件按逻辑顺序1、2、3等排序。您的文件按字母顺序排序。这是正常的行为。如果要按数字顺序对其排序,可以尝试以下操作: ls *.root | sort -k2 -t_ -n 这将使用\uu作为分隔符分割结果,

我有一个脚本,该脚本使用输出#创建文件。root,其中#是一个数字。当我在目录中执行ls时,它选择以一种奇怪的方式对文件排序:

output_1.root
output_10.root
output_100.root
output_11.root
output_2.root
等等


如何使文件按逻辑顺序1、2、3等排序。

您的文件按字母顺序排序。这是正常的行为。如果要按数字顺序对其排序,可以尝试以下操作:

ls *.root | sort -k2 -t_ -n

这将使用
\uu
作为分隔符分割结果,并根据第二个字段
-k2
按数字顺序对文件进行排序。这是正常的行为。如果要按数字顺序对其排序,可以尝试以下操作:

ls *.root | sort -k2 -t_ -n

这将使用
\uuu
作为分隔符分割结果,并根据第二个字段
-k2
按数字顺序排序。如果您使用的是GNU coreutils的ls,则可以使用版本排序开关:

ls -v
创建示例文件:

touch output_1.root output_10.root output_100.root output_11.root output_2.root
列出它们:

ls -1v
输出:

output_1.root
output_2.root
output_10.root
output_11.root
output_100.root

如果您正在使用GNU coreutils中的ls,则可以使用版本排序开关:

ls -v
创建示例文件:

touch output_1.root output_10.root output_100.root output_11.root output_2.root
列出它们:

ls -1v
输出:

output_1.root
output_2.root
output_10.root
output_11.root
output_100.root