gunzip 多个档案到特定文件夹

gunzip 多个档案到特定文件夹

是否有可能将多个文件压缩到一个文件夹中?

我有很多访问日志需要提取到文件夹中。/var/log/nginx/它们被放置在文件夹中,并且被命名为access.log.2.gz 但是有一个棘手的问题...我需要该文件夹中某个特定月份的所有档案。

有很多这样的访问日志,我需要将它们提取到目录中/var/log/nginx/target

我已经测试过了

for f in *.gz; do
  STEM=$(access.log. "${f}" .gz)
  gunzip -c "${f}" > /var/log/nginx/target/"${STEM}"
done

但根本不起作用。

答案1

我认为您的代码的问题很可能是 STEM 的计算。我暂时不清楚您的文件格式或您将如何对它们进行分组,但请尝试以下方法:

# Find files created within date range:
fromdate="201606010000"
todate="201606302359"
touch -t $fromdate /tmp/fromdate.del
touch -t $todate /tmp/todate.del

# Extract only the desired files to destination, removing the .gz extension
for f in `find /var/log/nginx/*.gz  -type f -newer $fromdate ! -newer $todate`
do
     zcat $f > /var/log/ngiz/target/${f::-3}
done

答案2

假设您不知道哪些日志包含六月:

zcat *gz | grep Jun > junelog

相关内容