使用cat和grep查找一堆文件,并在保留文件名时给我信息

时间:2012-04-02 23:13:58

标签: grep cat

所以我正在运行以下命令 cat / Users / sars / logs / testlogs / 2012-04-02 * / * / top | grep -H“httpd”

我正在使用*,因为有一堆目录(实际上是我正在查找的信息)并在顶部输出中查找短语httpd

但是当我这样做时我得到(标准输入):4951 root 1 96 0 14052K 6844K选择2 0:12 0.00%httpd
而不是文件名

如何查看这些目录,查看顶层文件并查找其中包含httpd的行,同时保留其所在文件的名称和路径?

2 个答案:

答案 0 :(得分:0)

grep可以将文件名作为参数:

grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top

答案 1 :(得分:0)

ack对于这类事情来说是一个很好的工具,但它是非标准的。要使用grep,您可能想使用find:

find /Users/sars/logs/testlogs -type f \
    -wholename '/Users/sars/logs/testlogs/2012-04-02*/*/top/*' \
    -exec grep -H httpd {} \;