想要将以相同时间戳记结尾的文件压缩到单个tar中

问题描述

我得到了一个日志文件列表,所有这些文件都以时间戳记结尾。 对于每一天,我有一堆日志文件都以相同的时间戳记结尾 一个星期以来,我的文件清单很长,都带有时间戳。

挑战在于,我想使用tar命令来归档一组与一个tar文件具有相同时间戳的文件

Henc最终每天都会得到tar文件

请问如何实现?某种类型的字符串匹配通配符,请使用Linux,这是我的新手。

文件示例: enter image description here

解决方法

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

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位数字,总是以.开头,总是以_结尾(如屏幕截图所示)。

,
# get all dates
all_date=`find -type f | awk -F '_'  '{print $2}'`

# make a dir to save tar files
mkdir tarfiles

# archive
for d in $all_date ; do
    tar zcvf tarfiles/$d.tar.gz *$d*
done