我的代码

$  *.php | grep google

如何打印文件名和linenumbers旁边的每个匹配?

有帮助吗?

解决方案

grep google *.php

如果你想跨越许多目录:

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

(如在注释所解释的,是-H有用的,如果xargs的只有一个剩余的文件出现后)

其他提示

您不应该这样做。

$ *.php | grep

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

它应该是:

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

-n标志告诉它做的行号,和-H标志告诉它显示即使只有文件的文件名。 grep的将默认显示文件名,如果有多个文件被搜索,但你可能要确保不管有多少匹配的文件有输出是一致的。

grep -RH "google" *.php

请看一看在ACK http://betterthangrep.com 。在你想要什么ACK相对应的是:

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

使用的 “人的grep” 看其他特征。

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top