2013-11-22 51 views
0

我想输出一个特定的几行压缩文件。由于我的研究,我认为我必须提取文件,然后grep我的字符串。例如。 gunzip -c只是输出到STDOUT我可以进一步处理。查找压缩文件和输出行

我尝试:

find path/to/files -name archive.gz | xargs gunzip -c | awk 'NR==100{print}' 

刚刚输出一个字符串(一个从所述第二文件)。如果没有xargs我收到错误:的gzip:标准输入:不在gzip格式

如果实际上是grep的一个选项,用sed,awk中,Perl或任何其他标准的bash的工具,我会很高兴得到通知。

回答

1

您需要-exec选项,以发出一个shell命令:

find path/to/files -name archive.gz -exec sh -c "gzip -dc {} | awk 'NR==100'" \; 

这由find命令生成的每个输出执行命令。