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

如何在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倍,甚至忽略了<code>中的模式。gitignore文件。

邓仲卿
2023-03-14

使用grep-ilR

grep -Ril "text-to-find-here" /
    < li> i代表忽略大小写(在您的情况下是可选的)。 < li> R代表递归。 < li> l代表“显示文件名,而不是结果本身”。 < li> /代表从机器的根目录开始。
易琨
2023-03-14

请执行下列操作:

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

除此之外,< code> - exclude 、< code> - include 、< code> - exclude-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参数排除一个或多个目录。例如,这将排除dir dir1/、dir2/,以及所有匹配*.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

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

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

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

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

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

  • 我试图实现一种在Firestore中保持一致性的方法,但我需要一种找到重复数据存在的所有位置的方法。firestore中是否有方法查找其子集合包含具有特定文档ID的文档的所有文档?例如对于以下结构 我将使用什么查询来查找其“朋友”列表包含文档 ID 为 5678 的文档的所有用户 ID?例如,当用户 5678 决定更改他/她的姓名时?

  • 本文向大家介绍如何在Linux上递归搜索所有文件中的字符串,包括了如何在Linux上递归搜索所有文件中的字符串的使用技巧和注意事项,需要的朋友参考一下 的grep命令用于搜索文本或扫描包含匹配到给定的字符串或单词行给定记录。使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。使用grep命令,我们可以在Linux上递归地在所有文件中搜索字符串。 的语法如下所示- 例如,在“下载”

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