Linux 查找包含字符串和返回行号的文件&;该行的预览

Linux 查找包含字符串和返回行号的文件&;该行的预览,linux,grep,Linux,Grep,我使用此命令查找给定目录中包含给定字符串的给定类型的所有文件: find /path/to/dir/ -name "*.php" -exec grep -l "my string" {} \; 但是,它只返回文件名。它是否也可以返回找到匹配项的所有行号,以及(对于奖励积分)每行的预览?如果是这样的话,这会显著放缓吗 第二,我怎样才能使它适用于多种文件类型 find /path/to/dir/ -name "*.php" -or -na

我使用此命令查找给定目录中包含给定字符串的给定类型的所有文件:

find /path/to/dir/ -name "*.php" -exec grep -l "my string" {} \;
但是,它只返回文件名。它是否也可以返回找到匹配项的所有行号,以及(对于奖励积分)每行的预览?如果是这样的话,这会显著放缓吗

第二,我怎样才能使它适用于多种文件类型

find /path/to/dir/ -name "*.php" -or -name "*.py" -exec awk '/my string/ { printf "%s - %s - %s\n\n",FILENAME,FNR,$0 }' '{}' +

使用-或与“查找”一起搜索多种文件类型,然后使用awk打印所需数据。

!非常感谢。但是,多种文件类型似乎不起作用。如果我包含
-或-name“*.py”
,它将不返回任何内容,但如果没有它,它将非常有效。我可以在输出中添加换行符吗?好的。我已经修改了答案,在每一行之后添加一个额外的换行符。您使用的是什么版本的find?我将保留此选项,因为“重复”答案不受文件类型的限制,并且比下面的答案慢数百倍。