如何报告通过 grep 管道传输后的字符串找到的文件名?

如何报告通过 grep 管道传输后的字符串找到的文件名?

我已经在 *nix 上呆了很长时间,记得过去做过这样的事情,现在那些神经通路已经消失了……我在 /usr/local/lib 中搜索包含以下内容的文件img_convert因为我收到链接错误并想找到包含该引用的库。

此命令找到引用,但不打印包含的文件名:

$ strings /usr/local/lib/* | grep 'img_convert'
img_convert
img_convert

当然,我可以编写脚本,但我确信有一种方法可以通过命令行来执行此操作......因此,任何帮助都将不胜感激!

答案1

尝试

strings --print-file-name /usr/local/lib/* | grep 'img_convert'

请注意,这将适用于 GNU strings,但不一定适用于其他版本。

答案2

Grep 很乐意读取二进制文件并搜索字符串本身,因此

grep -l img_convert /usr/local/lib/* 

应该做你想做的事。

相关内容