我想输出几个压缩文件的特定行。由于我的研究,我认为我必须提取文件,然后grep我的字符串。例如。 gunzip -c
只输出STDOUT
,我可以进一步处理。
我试过了:
find path/to/files -name archive.gz | xargs gunzip -c | awk 'NR==100{print}'
只输出一个字符串(第二个文件中的一个字符串)。没有xargs
我收到错误: gzip:stdin:不是gzip格式
如果实际上有grep,sed,awk,perl或任何其他标准bash工具的选项,我很乐意获得通知。
答案 0 :(得分:1)
您需要-exec
选项才能发出shell命令:
find path/to/files -name archive.gz -exec sh -c "gzip -dc {} | awk 'NR==100'" \;
这将为find
命令生成的每个输出执行命令。