如何找到特定的 Word 在 Linux 上的文件中

默认情况下,大多数搜索工具会查看文件名,而不是文件内容。 然而,最著名的 GNU 搜索程序, grep, 将查看带有正确标志的文件。 在这里,我们将向您展示如何在 Linux 上的文件中找到特定的单词。

使用 grep 查找特定的 Word 在一个文件中

默认情况下,grep 搜索文件的内容及其文件名。 它包含在大多数 Linux 系统中,并且在各个发行版中通常相同。 也就是说,较小或功能较弱的 Linux 机器可能更喜欢运行不同的命令,例如 ack.

根据文件的编码方式,grep 可能并不总是能够查看内部内容。 但是对于大多数基于文本的格式,grep 可以扫描文件的文本以查找指定的模式。

-R flag 将 grep 设置为递归模式,浏览指定目录中包含的所有目录。 这 -w flag 搜索整个单词匹配。 这意味着 ‘red’ 将仅匹配被空白字符包围的 ‘red’ 而不是 ‘redundant’ 或 ‘tired’。 这 -e flag 以要搜索的模式开头。 它默认支持正则表达式。

要加速 grep,您可以使用 --exclude--include 标志将搜索限制为某些类型的文件。 为了 example, --exclude=*.csv 不会在任何扩展名为 .csv 的文件中搜索。 --include=*.txt另一方面,只会在扩展名为 .txt 的文件中搜索。 可以在 grep 命令后立即添加该标志,如下所示:

您还可以按照以下格式排除指定目录:

此命令不会在当前工作目录中名为 dir1、dir2 或匹配模式 *_old 的任何目录中搜索,从而将它们从搜索过程中排除。 它将对当前工作目录中的所有其他文件执行指定的递归全字匹配搜索。

使用 find 查找特定的 Word 在一个文件中

在文件中查找文本 Linux 查找 Grep

虽然 find 命令的语法比 grep 更复杂,有些人更喜欢它。

该命令将使用 find 的 -exec 标志将找到的文件传递给 grep 进行搜索。 通过巧妙的语法安排,您可以使用 find 更快的文件系统搜索来定位要在其中搜索的特定文件类型,然后通过管道将它们传送到 grep 以便在文件中进行搜索。

请注意,find 只查看文件名,而不是内容。 这就是为什么需要 grep 来搜索文件文本和内容。 正常的 grep 标志应该在 -exec 旗帜。

使用 ack 查找特定的 Word 在一个文件中

ack 命令可能是最快的搜索工具,但它不如上述选项受欢迎。 下面的命令将在当前目录中搜索。

如果要在特定文件或目录中搜索,可以将该文件或完全限定的路径名​​附加到搜索中。

结论

在大多数情况下,对于大多数人来说,grep 是最好的广泛使用的搜索工具。 您还可以查看其他搜索工具,例如 瑞普格雷p,用于更快的搜索选项

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅