首页 > 解决方案 > 想将以相同时间戳结尾的文件 tar 到单个 tar

问题描述

我得到了一个日志文件列表,所有这些文件都以时间戳结尾。对于每一天,我都有一堆日志文件都以相同的时间戳结束一周,我有一长串带有时间戳的文件。

挑战是,我想使用 tar 命令来归档以相同时间戳结尾的文件集作为一个 tar 文件。

因此,每天都会相应地得到 tar 文件。

请问我怎样才能做到这一点?某种字符串匹配通配符,我是 linux 新手,请帮忙。

文件示例: 在此处输入图像描述

标签: linuxbashshell

解决方案


首先,获取唯一时间戳的列表。然后,对于每个时间戳存档具有该时间戳的所有文件:

printf %s\\n *.log | grep -Eo '\.[0-9]{8}_' | tr -d ._ | sort -u | while read timestamp; do
   tar cf "$timestamp.tar" ./*"$timestamp"*.log
done

在这里,我假设时间戳总是有 8 位数字,总是以开头.和结尾_(如您的屏幕截图所示)。


推荐阅读