Unix zcat管道至grep
我想找到在某个日期修改过的所有文件,然后对它们进行zcat并在字段中搜索数字字符串 上述方法不起作用,因为它在文件名中搜索字符串,而不是文件本身 有什么帮助吗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
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