Unix zcat管道至grep

Unix zcat管道至grep,unix,grep,zcat,Unix,Grep,Zcat,我想找到在某个日期修改过的所有文件,然后对它们进行zcat并在字段中搜索数字字符串 上述方法不起作用,因为它在文件名中搜索字符串,而不是文件本身 有什么帮助吗 M尝试使用find。和/或xargs使用xargs对awk输出的文件名运行grep: ls -ltr|grep 'Mar 4'| awk '{print $9 }'|zcat -fq |grep 12345 或者,我猜,从awk本身运行管道的其余部分。如果我正确阅读了您的命令行,那么zcat将尝试解压缩文件名而不是其内容。使用xar

我想找到在某个日期修改过的所有文件,然后对它们进行zcat并在字段中搜索数字字符串

上述方法不起作用,因为它在文件名中搜索字符串,而不是文件本身

有什么帮助吗


M

尝试使用
find
。和/或
xargs

使用
xargs
对awk输出的文件名运行grep:

ls -ltr|grep 'Mar  4'| awk '{print $9 }'|zcat -fq |grep  12345

或者,我猜,从awk本身运行管道的其余部分。

如果我正确阅读了您的命令行,那么zcat将尝试解压缩文件名而不是其内容。使用xargs解决此问题:

ls -ltr | grep 'Mar 4' | awk '{print 9}' | xargs zcat -fq | grep 12345

除了关于使用
xargs
find
的好答案之外,您还可以通过消除
zcat
并通过管道连接到
zgrep
grep-Z
来摆脱额外的过程。

在我的系统(OS X)上,grep-Z并不像您想象的那样做。显然,在Linux上,我手头没有,任何一个哎呀。那么,zgrep是更好的选择。
ls -ltr|grep 'Mar  4'| awk '{print $9 }'|xargs zcat -fq |grep  12345