当前位置: 首页 > 知识库问答 >
问题:

如何在Linux上查找包含特定文本(字符串)的所有文件

爱茂勋
2023-03-14

如何查找在其文件内容中包含特定文本字符串的所有文件?

以下方法不起作用。它似乎显示系统中的每个文件。

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

共有3个答案

拓拔意
2023-03-14

您可以使用ack。它就像源代码的grep。您可以使用它扫描整个文件系统。

只要做到:

ack 'text-to-find-here'

在您的根目录中。

还可以使用正则表达式,指定文件类型等。

更新

我刚刚发现了Silver Searcher,它类似ack,但比它快3-5倍,甚至忽略来自a 的模式。gitignore文件。

齐永昌
2023-03-14

使用grep-ilR

grep -Ril "text-to-find-here" /
  • i 代表忽略大小写(在您的案例中是可选的)。
  • R 代表递归。
  • l 代表“显示文件名,而不是结果本身”。
  • / 代表从机器的根部开始。
毕魁
2023-03-14

请执行以下操作:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r-R 是递归的,
  • -n 是行号,并且
  • -w 代表匹配整个单词。
  • 可以添加 -l(小写 L)以仅提供匹配文件的文件名。
  • -e 是搜索期间使用的模式

与这些一起,--exclude--include--exclude-dir标志可用于高效搜索:

  • 这将仅搜索具有. c或. h扩展名的文件:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
    < li >这将排除搜索所有以结尾的文件。o分机:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
    < li >对于目录,可以使用< code> - exclude-dir参数排除一个或多个目录。例如,这将排除dir dir 1/、dir2/以及所有匹配*的目录。dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

这对我来说非常有效,可以实现几乎与你相同的目的。

有关更多选项,请参见< code>man grep。

 类似资料:
  • 如何查找在其文件内容中包含特定文本字符串的所有文件? 下面不行。它似乎显示了系统中的每一个文件。

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我试图找到一种方法来扫描我的整个Linux系统,以查找包含特定文本字符串的所有文件。只是为了澄清,我正在文件中寻找文本,而不是在文件名中寻找文本。 当我查找如何执行此操作时,我两次遇到此解决方案: 但是,它不起作用。似乎显示了系统中的每个文件。 这接近正确的方法吗?如果没

  • 问题内容: 我一直在寻找一个命令,该命令将从当前目录返回文件名中包含字符串的文件。我已经看到和命令可以找到以某些内容开头或结尾的文件。 如何返回文件名中包含字符串的文件列表? 例如,if 是当前目录中的文件。 如何返回此文件和其他包含字符串的文件?使用诸如 问题答案: 用途: 它将在当前目录中找到所有包含“字符串”的文件(如果要递归,则删除),并将其打印在屏幕上。 如果要避免文件包含“:”,则可以

  • 问题内容: 要查找当前文件夹中所有包含“ foo”的文件,我使用: 要查找当前文件夹中所有包含“ bar”的文件,我使用: 但是,如何查找不包含“ foo”和“ bar”的所有文件? 问题答案: 要打印 线 不包含某些字符串,可以使用标志: 这样就为您提供了 不 包含或的所有行。 要打印不包含某些字符串的 文件 ,请使用该标志。要不匹配多个字符串,可以将正则表达式与标志一起使用(可以使用多个reg

  • 问题内容: 我在Ubuntu上,我想在当前目录和子目录中找到名称包含字符串“ John”的所有文件。我知道可以匹配文件中的内容,但是我不知道如何在文件名中使用它。任何帮助,将不胜感激。 问题答案: 使用find命令,

  • 我必须在数据库中找到所有有模式的记录。如果字段中的任何单词以特定字符串结尾。比如“is”: 所以像%is%或%is这样的简单操作是无效的。有没有什么正则表达式可以帮我做这件事?我也可以在PHP中使用LIKE%is%和filtring获得所有记录,但仍然没有任何线索如何。我有结束字符串的解决方案,但没有单词。