0

我有一个 tar.gz 文件,里面有一个巨大的 XML .. 我需要在 perl 中使用 Archive::tar 提取文件......我正在使用下面的代码,它只从 tar 中提取压缩的 XML 文件。 gz文件..但我还需要一步提取XML...我正在使用下面的代码...

 TAR__PATH= 'C:\\Perl\IN\Work\tar_file_20130426.xml.tar
 my $extract_obj = Archive::Extract->new(archive => $TAR_FILE_WORK_PATH, type => 'tar');
4

3 回答 3

0

万一它.xml放在tar.gz这里是另一个使用Archive::Extract. 以单线形式

perl -MArchive::Extract -e "Archive::Extract->new( archive => 'src/PPM-2.50_01.tar.gz' )->extract()"

源代码形式:

use Archive::Extract;

Archive::Extract->new( archive => 'src/PPM-2.50_01.tar.gz' )->extract();
于 2014-06-05T07:26:29.223 回答
0

使用下面的代码;

use Archive::Tar;

my $tar=Archive::Tar->new();

$tar->read('/path/of/tar/test.tar.gz');
$tar->extract();

它将提取当前路径中的内容。希望,它会奏效。

于 2013-04-30T08:59:11.800 回答
0

您可能想要一个系统调用(反引号,因为它阻塞直到完成并为您提供结果)以 tar 作为 Archive::Tar 将整个存档加载到内存中

类似的东西

my $ret = `tar zxf $TAR_FILE_WORK_PATH`;

然后检查 $ret 是否成功。

您可以使用 -v (详细)选项获取更多输出以签入 $ret

大多数 tar 命令都有一个 -C 选项来提取到指定的目录,这也很有用。

于 2013-04-30T12:03:54.850 回答