Bash - 数字排序在 1 秒之前排序 10 秒

标签 bash sorting numerical

我在一个目录中。有两个子目录,我想按数字顺序列出其中的文件。在第一个目录中,文件名为 01、02、03...,它们排序良好。但在第二个目录中,文件被命名为 1、2、3,因此 10 排在 1 之前。键控似乎不起作用,因为我是文件后面的目录,因此脚本如下:

find "$PWD" -type f|sort -n -t _ -k 1

不起作用。如何按真实的数字顺序列出?

最佳答案

排序手册:Sort numerically: the number begins each line ... 我怀疑 find 的输出是否会是这样。因此,您应该编写一个脚本,从文件名中删除前导字符,然后调用排序。

例如find "$WORD" -type f | cut -d / -f 2-将致力于对第一级目录中的文件名进行数字排序,但其余的不会按数字排序。

您必须根据您的需要编写脚本,但如果您要查找的内容位于单个目录中,则上面的行就可以了。

关于Bash - 数字排序在 1 秒之前排序 10 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955843/

相关文章:

java - 从 int 数组中删除重复元素

regex - 仅当标签名称与正则表达式匹配时如何启动 Travis CI 部署

bash - 如何选择随机图像以便在 Linux 中更有可能选择较新的图像

bash - 循环两组文件

javascript - 使用自定义函数排序,给出相反的结果

java - 计算快速排序中的比较和交换

python - 如何将一列字符串转换为数字?

matlab - 向量的数值导数

bash - Scanimage 无法从变量获取参数

c - 数值配方的 LU 分解不起作用;我究竟做错了什么?