我如何在其文件内容中找到包含一个特定的文本序列的所有文件?
下一个不起作用. 它似乎显示系统中的每个单一文件。
find / -type f -exec grep -H 'text-to-find-here' {} \;
我如何在其文件内容中找到包含一个特定的文本序列的所有文件?
下一个不起作用. 它似乎显示系统中的每个单一文件。
find / -type f -exec grep -H 'text-to-find-here' {} \;
当前回答
有一个名为The Silversearcher的新工具
sudo apt install silversearcher-ag
它与 Git 和其他 VCS 密切合作,所以您不会在.git 或其他目录中获得任何东西。
你可以简单地使用
ag "Search query"
它会为你完成任务!
其他回答
Silver Searcher 是一个可怕的工具,但 ripgrep 可能甚至更好。
它在Linux、Mac和Windows上运行,并在几个月前在Hacker News上编写(它有一个链接到Andrew Gallant的博客,其中有一个GitHub链接):
Ripgrep - 新命令线搜索工具
如果您在 Git 存储库中,您可以使用:
git grep something
grep "text-to-find-here" file_name
或
grep "text-to-find-here" directory_path/*
如果你想搜索当前的目录:
grep "text-to-find-here" *
使用:
grep -Erni + "text you wanna search"
命令将重复搜索当前目录的所有文件和目录,并打印结果。
注意:如果您的格雷普输出没有颜色,您可以通过在您的壳源文件中使用格雷普=‘格雷普=颜色=总是’的标志来更改它。
试试这:
find . | xargs grep 'word' -sl