2015-12-09 25 views
6

我有一个large.tar.gz文件包含大约100万个文件,其中大约1/4是html文件,我想解析其中每个html文件的几行。如何将大型tar.gz文件的内容传递给STDOUT?

我想避免到大large.tar.gz内容解压到一个文件夹,然后解析HTML文件,而不是我想知道我怎么能管的large.tar.gz的HTML文件的内容直STDOUT使我可以grep /解析出我想要的信息吗?

我相信一定有某种魔力,如:

tar -special_flags large.tar.gz | grep_only_files_with_extension html | xargs -n1 head -n 99999 | ./parse_contents.pl - 

任何想法?

+1

你的意思是标准输出? – 123

+1

您应该考虑在发布问题前检查“ --help”或“ -h”,大部分时间少于30行,其中一个包含所需的标志 – Aaron

+0

对不起,我的意思是STDOUT,现在更正@ 123 – 719016

回答

16

使用此与GNU焦油提取TGZ到标准输出:

tar -xOzf large.tar.gz --wildcards '*.html' | grep ... 

-O, --to-stdout:提取文件到标准输出

+0

'zgrep'有什么问题? – Yaron

+0

@Yaron:我期望它使用zcat,而'pigz -dc'更快。 – d33tah

相关问题