【问题标题】:Zip files excluding log fileZip 文件,不包括日志文件
【发布时间】:2017-03-16 21:16:47
【问题描述】:

我想压缩一个文件夹中的所有文件,但日志文件除外,其格式为“_LOG_FILE”。我在我的 shell 脚本中使用下面的命令来压缩文件。

usrl="/usr/bin/zip"; 
src_files="$2/*$1*"
tgt_file="$2/$1.zip"
exc_files="$2/$1*_LOG_FILE*"    
$usrl -jmn : $tgt_file $src_files -x $exc_files;

$2 保存目录路径,$1 保存与批处理 id 值相对应的数值(它保存像 82568 或 82659 等值)。示例日志文件名为“823159_20160608_NM_LOG_FILE.dat”,其中 823159 是批次 ID,并且该值被正确替换,没有任何问题。

我面临的问题是,日志文件也包含在 zip 文件中,即使我试图在我的代码中排除它。请提供一些解决方案。

【问题讨论】:

  • exc_files="$2/$1*_LOG_FILE*" 中删除$1,即将其更改为exc_files="$2/*_LOG_FILE*"

标签: linux perl shell unix zip


【解决方案1】:

我说将文件添加到数组中,然后循环遍历它们。附加到 zip。

opendir(DH, $2);
my @files = readdir(DH);
closedir(DH);

foreach my $file (@files)
{
        # skip . and ..
        next if($file =~ /^\.$/);
        next if($file =~ /^\.\.$/);

        # Skip file containing that string
        next if $file =~ /.*(_LOG_FILE).*/);

        # Then append to the zip
        #....

}

我没有测试过这个。另一种方法是将日志(在此数组中)复制到临时目录,然后将其压缩。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2013-03-29
    • 2017-06-27
    相关资源
    最近更新 更多