我如何在其文件内容中找到包含一个特定的文本序列的所有文件?

下一个不起作用. 它似乎显示系统中的每个单一文件。

find / -type f -exec grep -H 'text-to-find-here' {} \;

当前回答

有一个名为The Silversearcher的新工具

sudo apt install silversearcher-ag

它与 Git 和其他 VCS 密切合作,所以您不会在.git 或其他目录中获得任何东西。

你可以简单地使用

ag "Search query"

它会为你完成任务!

其他回答

试试这

find . -type f -name some_file_name.xml -exec grep -H PUT_YOUR_STRING_HERE {} \;
grep "text-to-find-here" file_name

grep "text-to-find-here" directory_path/*

如果你想搜索当前的目录:

grep "text-to-find-here" *

使用:

grep -c Your_Pattern *

这将报告您的模式在当前目录中的每个文件中有多少副本。

有一个Ack工具,它会做你正在寻找的东西:

ack -i search_string folder_path/*

您可能会忽略 -i 对案例敏感搜索。

如果你有一组文件,你会一直在检查,你可以列出他们的路径,例如:

alias fd='find . -type f -regex ".*\.\(inc\|info\|module\|php\|test\|install\|uninstall\)"'

然后你可以简单地过滤列表如下:

grep -U -l $'\015' $(fd)

将列表 fd 过滤到包含 CR 模式的文件。

我发现,将我感兴趣的文件会帮助我创建更容易的脚本,然后总是试图记住如何获得所有这些文件。 回复的物品工作,但早或晚你将不得不争取分散特定的文件类型。