按顺序对文件进行 Bash 和排序

标签 bash sorting

我用之前的 bash 脚本创建了一个文件列表:

data_1_box
data_2_box
...
data_10_box
...
data_99_box

问题是现在我需要连接它们,所以我尝试了

ls -l 数据_*

但是我明白了

.....
data_89_box
data_8_box
data_90_box
...
data_99_box
data_9_box

但我需要进入连续 1, 2, 3, 4, .. 9, ..., 89, 90, 91, ..., 99

可以在 bash 中完成吗?

最佳答案

ls data_* | sort -n -t _ -k 2

-n: 按数字排序
-t: 字段分隔符 '_'
-k:在第二个字段上排序,在您的情况下是第一个“_”之后的数字

关于按顺序对文件进行 Bash 和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747047/

相关文章:

sql-server-2008 - 在对 SQL Server 2008 记录进行排序时忽略停用词

java - 在 Java 中过滤/排序大量数据

algorithm - : sort n elements, 或在正确的位置一个接一个地插入 n 个元素哪个更快?

c - 我需要有关在 C 文本文件中显示前 5 名分数的功能的帮助

linux - Bash管道消费顺序

c - 如何更好地找到Pendrive的挂载路径?

bash - 自定义 Bash 脚本

bash - 如果已使用单引号和双引号,则 find -exec 的解决方案

linux - Bash:将程序输出打印到文件,而不是在屏幕上

python - 如何将列表的一部分传递给不同的变量?