![获取唯一的文件列表](https://linux22.com/image/71314/%E8%8E%B7%E5%8F%96%E5%94%AF%E4%B8%80%E7%9A%84%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8.png)
我有一个目录,其中文件创建为abc.sh.ID.datetimestamp.id.log
在文件名 abc.sh 中,ID始终相同(环境中有 1000 个 .sh 和 ID 的组合)。日期时间戳和ID更改每个生成的文件。我正在尝试使用ls -ltr abc.sh.*.log
.但它返回与表达式匹配的所有文件名。我只需要唯一的 ID 文件名而不关心什么日期时间戳和ID是。
有人可以帮忙吗?
答案1
我应该这样想:
ls ./* | cut -d '.' -f 1,2,3 | sort -u
将会到达那里,这本质上列出了目录的内容,然后切断第三个“.”之后的所有内容。然后对行进行排序并删除重复项。最终结果将是“abc.sh.ID”列表。
如果您希望循环遍历这个新列表,并执行“ls [line]*”来获取 datetimestamp.id.log,这将导致按 ID 分组的目录内容。