zcat管道到grep

时间:2009-03-11 10:36:29

标签: unix grep zcat

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

我想查找在特定日期修改的所有文件然后zcat它们并在fiels中搜索数字字符串。

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

任何帮助?

中号

4 个答案:

答案 0 :(得分:2)

使用xargs在awk:

输出的文件名上运行grep
ls -ltr | grep 'Mar 4' | awk '{print 9}' | xargs zcat -fq | grep 12345

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

答案 1 :(得分:1)

请尝试使用find。和/或xargs

答案 2 :(得分:1)

如果我正确地读取了你的命令行,它的zcat试图解压缩文件名而不是它们的内容。使用xargs来解决这个问题:

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

答案 3 :(得分:0)

除了有关使用xargsfind的正确答案之外,您还可以通过消除zcat并管道到zgrep或{{grep -Z来摆脱额外的流程1}}而不是。