用于cat和grep匹配的文件名和亚麻布

时间:2009-02-26 20:05:12

标签: unix grep cat

我的代码

$  *.php | grep google

如何在每场比赛旁边打印文件名和亚麻布?

7 个答案:

答案 0 :(得分:14)

grep google *.php

如果你想跨越许多目录:

find . -name \*.php -print0 | xargs -0 grep -n -H google

(如评论中所述,如果xargs只出现一个剩余文件,则-H非常有用)

答案 1 :(得分:5)

你不应该这样做

$ *.php | grep

这意味着“运行第一个PHP程序,其余名称为通配符作为参数,然后在输出上运行grep”。

应该是:

$ grep -n -H "google" *.php

-n标志告诉它做行号,-H标志告诉它显示文件名,即使只有文件。如果搜索到多个文件,Grep将默认显示文件名,但您可能希望确保输出一致,无论有多少匹配文件。

答案 2 :(得分:2)

grep -RH "google" *.php

答案 3 :(得分:2)

请回顾http://betterthangrep.com。你正在尝试的等价物是:

ack google --php

答案 4 :(得分:1)

find ./*.php -exec grep -l 'google' {} \; 

答案 5 :(得分:0)

使用“man grep”查看其他功能。

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;

答案 6 :(得分:0)

find . -name "*.php" -print | xargs grep -n "searchstring"
相关问题