问题描述
我得到了一个日志文件列表,所有这些文件都以时间戳记结尾。 对于每一天,我有一堆日志文件都以相同的时间戳记结尾 一个星期以来,我的文件清单很长,都带有时间戳。
挑战在于,我想使用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