linux - 如何在每个目录中查找编号最大的文件作为文件名?

标签 linux bash

我的文件结构是这样的

./501.res/1.bin
./503.res/1.bin
./503.res/2.bin
./504.res/1.bin

我想在每个目录中找到 .bin 文件的文件路径,其中文件名的编号最大。所以我正在寻找的输出是

./501.res/1.bin
./503.res/2.bin
./504.res/1.bin

一个文件最多可以有 9 个。

问题

我如何在 BASH 中执行此操作?

我已经找到 find .|grep bin|sort

最佳答案

Glob 保证按词法顺序展开。

for dir in ./*/
do
    files=($dir/*)           # create an array
    echo "${files[@]: -1}"   # access its last member
done

关于linux - 如何在每个目录中查找编号最大的文件作为文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157958/

相关文章:

c - mmap 分配多个页面

bash - 合并数百万文件的最快方法

linux - Bash 创建变量然后为其赋值

perl - 零垫重命名,例如图片 (2).jpg -> 图片 (002).jpg

在没有 Root 访问的情况下,Linux 在 CPL3(用户模式)下会崩溃或挂起吗?

linux - 从终端更改 Ubuntu 12.04 中的系统代理设置

linux - 如何在for循环中调用变量作为变量名和变量值

linux - 如何递归更改文件名的大小写?

linux - slurm 脚本给出 "command not found"

linux - 启动脚本失败并出现错误 "-e: invalid option",缺少什么?