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

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

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

当前回答

使用 grep -ilR:

grep -Ril "text-to-find-here" /

i 代表忽略案例(可选在您的案例中)。R 代表重复。l 代表“显示文件名,而不是结果本身”。 / 代表在您的机器的根源开始。

其他回答

使用 pwd 从您所在的任何目录中搜索,向下滑动

grep -rnw `pwd` -e "pattern"

取决于您正在使用的 grep 版本,您可以忽略 pwd. 在更新的版本中,如果没有目录,则似乎是 grep 的默认情况。

这样:

格雷普 -rnw -e “模式”

格雷普 -rnw “模式”

他们会像上面那样做!

做下列事:

grep -rnw '/path/to/somewhere/' -e 'pattern'

-r 或 -R 是重复的, -n 是字符号, -w 是相匹配整个单词的。 -l (较低的 L 案例) 可以添加到只提供相匹配文件的文件名。

与此同时, - 排除, - 包括, - 排除-dir 旗帜可以用于有效的搜索:

这只会通过具有.c 或.h 扩展的文件进行搜索: grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern" 这将排除与.o 扩展结束的所有文件进行搜索: grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern" 对于目录,可以使用 --exclude-dir 参数排除一个或多个目录。

这对我来说非常好,为了实现几乎与你的同样的目的。

更多选项,看看男人抓住。

我写了一个Python脚本,它做了一些类似的事情,这就是如何使用这个脚本。

./sniff.py path pattern_to_search [file_pattern]

第一個論點,路径,是我們將重新搜尋的目錄. 第二個論點, pattern_to_search,是一個常見的表現,我們想要在檔案中搜尋。

第三个论点, file_pattern,是可选的. 这是另一个常见的表达式,在一个文件名上工作. 只有与这个常见的表达式相匹配的文件将被考虑。

例如,如果我想搜索Python文件的扩展Py包含Pool(跟随“Adaptor”这个词,我做以下,

./sniff.py . "Pool(.*?Adaptor"  .*py
./Demos/snippets/cubeMeshSigNeur.py:146 
./Demos/snippets/testSigNeur.py:259 
./python/moose/multiscale/core/mumbl.py:206 
./Demos/snippets/multiComptSigNeur.py:268 

而 voila,它产生了匹配文件的路径和线号,在那里比赛被发现,如果超过一个比赛被发现,那么每个线号将添加到文件名。

GUI Search Alternative - 用于桌面使用:

因为问题不准确要求命令。

Searchmonkey: Advanced file search tool without having to index your system using regular expressions. 图形相当于查找/查找. 可用于 Linux (Gnome/KDE/Java) 和 Windows (Java) - 开源 GPL v3

特性:

Advanced Regular Expressions Results shown in-context Search containing text Panel to display line containing text 新 2018 更新等。

下载 - 链接:

主页: http://searchmonkey.embeddediq.com/ 下载: http://searchmonkey.embeddediq.com/index.php/download-latest Repo: https://sourceforge.net/projects/searchmonkey/files/

屏幕射击:

此分類上一篇

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

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

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

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

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

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