我已将文本文件“FilenameKeyword.txt”文件放在E:/Test文件夹中,在我的perl脚本中,我正在尝试遍历该文件夹,并且我正在尝试找到一个带有文件名的文件,其中包含字符串“关键字”,后来我在我的脚本中打印了该文件的内容。现在我希望对放置在压缩的tar文件中的文件做同样的事情。
我试图从中提取详细信息的假设文件:E:\test.tar.gz
想知道在perl中是否有可能搜索和读取文件而不解压缩/解压缩假设文件。如果这是不可能的,我还将分配一些临时内存来解压文件,在从特定文本文件中提取内容后应将其删除。
在互联网上搜索时,我可以使用Archive::Extrac来提取和读取gzip/tar文件,因为我是Perl的新手——我真的很困惑我应该如何使用它。你能帮忙吗……
输入文件:文件名关键字.txt
脚本:
use warnings;
use strict;
my @dirs = ("E:\\Test\\");
my %seen;
while (my $pwd = shift @dirs) {
opendir(DIR,"$pwd") or die "Cannot open $pwd\n";
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files)
{
if (-d $file and ($file !~ /^\.\.?$/) and !$seen{$file})
{
$seen{$file} = 1;
push @dirs, "$pwd/$file";
}
next if ($file !~ /Keyword/i);
my $mtime = (stat("$pwd/$file"))[9];
print "$pwd$file";
print "\n";
open (MYFILE, "$pwd$file");
while (my $line = <MYFILE>){
#print $line;
my ($date) = split(/,/,$line,2);
if ($line =~ s!<messageText>(.+?)</messageText>!!is){
print "$1";
}
}
}
}
输出(在测试程序文件中放在E:\test下):
E:\Test\FilenameKeyword.txt
1311 messages Picked from the Queue.
寻求帮助来检索E:\test.tar.gz下的文件内容
期望输出:
E:\test.tar.gz\FilenameKeyword.txt
1311 messages Picked from the Queue.
如果您的文件仅被 gzip 压缩,则可以按照此处概述的“流式”方式读取其内容(通过管道连接到/来自没有系统或反引号的子进程 - gzipped tar 文件)。本文说明了一种使用 open 和 fork 来打开和解压缩文件,然后将其提供给 Perl 的 while(),从而允许您迭代它的技术。
由于 tar 基本上是连接事物,因此有可能使其适应您的方案。
我被困在使用CPAN模块,CPAN模块不适合我,因为我在同一台机器上有预言机10g企业版,由于做了一些软件冲突活动状态perl无法编译和参考CPAN模块的perl库,我已经卸载了我的机器中的预言机来使这个工作....
#!/usr/local/bin/perl
use Archive::Tar;
my $tar = Archive::Tar->new;
$tar->read("test.tar.gz");
$tar->extract();
问题内容: 我想从csv(文本)文件逐行读取(在Python 2.7中),该文件是7z压缩的。我不想解压缩整个(大)文件,而是流线。 我尝试失败。我收到数据错误。请注意,此代码尚未逐行读取: 输出: 问题答案: 这将允许您迭代行。它部分源自我在另一个问题的答案中找到的一些代码。 在该时间点(),该模块未实现允许将存档成员作为字节流或字符流读取的API-其类仅提供了一次解压缩并返回成员中未压缩数据的
我正试图从压缩的csv文件中获取数据。有没有一种方法可以做到这一点,而不解压整个文件?如果没有,我如何解压文件并有效地读取它们?
我想使用jszip加载一个压缩包,获取里面的docx文件,返回一个文件地址或者xml,给wps加载项用,本来是想试一试blob是否可以,但是打出来的日志返回的是一个Blob {size: 10372, type: ''},async里面的type写为string的时候,打出来的日志是个乱码 想知道一下这个该怎么办,wps加载项需要是一个docx地址,或者是一个xml文件
问题内容: 任何人都可以向我展示在我一直在搜索的Java中压缩和解压缩tar.gzip文件的正确方法,但是我能找到的最多是zip或gzip(单独)。 问题答案: 我最喜欢的是plexus-archiver-请参阅GitHub上的资源。 另一个选项是Apache commons- compress- (请参阅mvnrepository)。 使用plexus-utils,用于取消存档的代码如下所示:
我的 tar 文件位于以下位置: 使用 tar 命令: 命令显示我: 我的计划或更好的愿望是这样处理: 我只想要一个tar文件并将其存储到不同的目录……但是这个带有-C的命令不起作用…它提取tar的所有文件…… 我的问题是,是否可以只提取一个Tar文件,而不将提取到目录中??另一个问题:是否有可能只提取tar文件而不提取文件夹这可能是更好的方法,但我不知道如何。。。? 不,没有路径我就不能保存文件
问题内容: 使用python从gz压缩的文本文件中读取一行很容易,而无需完全提取该文件?我有一个大约200mb的text.gz文件。当我提取它时,它变成7.4gb。这不是我必须阅读的唯一文件。对于整个过程,我必须读取10个文件。尽管这将是一个顺序的工作,但我认为在不影响全部信息的情况下做到这一点将是明智之举。我什至不知道有可能。如何使用python完成?我需要逐行阅读文本文件。 问题答案: 您是否