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

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

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

有什么帮助吗?

4

4 回答 4

2

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

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

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

于 2009-03-11T10:39:33.060 回答
1

尝试find改用。和/或xargs.

于 2009-03-11T10:38:16.213 回答
1

如果我正确阅读了您的命令行,则它的 zcat 正在尝试解压缩文件名而不是其内容。使用 xargs 来解决这个问题:

ls -ltr|grep 'Mar  4'| awk '{print $9 }'|xargs zcat -fq |grep  12345
于 2009-03-11T10:40:46.050 回答
0

除了关于使用xargsor的优秀答案之外,您还可以通过消除和管道到or来find摆脱额外的过程。zcatzgrepgrep -Z

于 2009-03-11T17:03:59.267 回答