2013-11-22 37 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命令生成的每個輸出執行命令。