@H_502_1@
我正在尝试创建一个解析脚本,解析一个压缩了gunzip的大文本文件(200万行).我只想解析文本文件中的一系列行.到目前为止,我已经使用zgrep -n找到两行,提到我知道将开始的字符串并结束我感兴趣的文件部分.
在我的测试用例文件中,我感兴趣的只是读取123080到139361行.我发现Tie :: File使用它返回的数组对象访问文件行,但不幸的是,这对于枪压缩文件我不起作用和我一起工作.
use Tie::File tie @fileLinesArray,'Tie::File',"hugeFile.txt.gz" my $startLine = 123080; my $endLine = 139361; my $lineCount = $startLine; while ($lineCount <= $endLine){ my $line = @fileLinesArray[$lineCount] blah blah... }
解决方法
使用
IO::Uncompress::Gunzip这是一个核心模块:
use IO::Uncompress::Gunzip; my $z = IO::Uncompress::Gunzip->new('file.gz'); $z->getline for 1 .. $start_line - 1; for ($start_line .. $end_line) { my $line = $z->getline; ... }