如何在 Linux 上的文件中查找字符串或文本
在 Linux 系统上,经常需要在文件中查找字符串。在命令行上,grep 命令很好地介绍了此功能,但您需要了解如何使用它的基础知识。在 GUI 上,大多数文本编辑器还能够搜索特定字符串。
在本教程中,我们将向您展示如何快速轻松地在文件中搜索指定的文本字符串。您将学习如何使用 grep
命令来执行此任务,以及如何在命令行和 GUI 文本编辑器中访问搜索功能。
在本教程中您将学习:
如何通过命令行在文件中搜索文本字符串
如何通过命令行文本编辑器在文件中搜索文本字符串
如何通过 GUI 文本编辑器在文件中搜索文本字符串
在 Linux 上的文件中查找文本字符串
通过命令行在文件中搜索文本字符串
要在一个或多个文件中搜索特定文本字符串,您需要知道的唯一命令是 grep
。而且很容易掌握。让我们从最简单的命令形式开始,然后逐渐变得更加复杂。
要在文件中搜索文本字符串,请使用以下命令语法:
$ grep string filename
例如,让我们在 document.txt
文本文档中搜索字符串“example”。
$ grep example document.txt
使用 grep 在文件中搜索文本字符串
正如您从屏幕截图中看到的,grep
返回包含单词“example”的整行。如果该字符串出现在多行中,则所有这些行也将被返回。
如果您想搜索多个文件,只需将任意数量的文件附加到命令中即可。
$ grep example document1.txt document2.txt
您还可以在命令中使用通配符。
$ grep example document*
使用 grep 在多个文件中搜索文本字符串
grep
的输出向我们显示了在哪些文件中找到了该字符串。
要递归搜索,请将 -r
选项与 grep
结合使用。
$ grep -r example
使用 grep 递归搜索文本字符串
正如您所看到的,grep
搜索了多个目录并指示它在哪里找到了该字符串。您还可以在命令中指定一个目录,但省略它(就像我们在本示例中所做的那样)将指示 grep 搜索当前路径中的每个目录。
以下是搜索文本字符串时可能需要的其他一些方便的 grep
命令选项:
-c
– 计算字符串出现的次数-i
– 忽略大小写。-n
– 显示找到字符串的行号。-o
– 仅显示匹配的文本(不返回整行)。
使用 grep
还可以做更多的事情。查看我们的 grep 指南以获取更深入的信息,或查看手册页以获取更多命令行选项。
$ man grep
在 nano 中搜索文本字符串
如果您在 Nano 中打开了一个文件并且需要查找特定字符串,则无需退出该文件并对其使用 grep
。只需按键盘上的 Ctrl + W
,输入搜索字符串,然后按 Enter
。
在 nano 中搜索文本字符串
在 vim 中搜索文本字符串
vim 文本编辑器还有一个用于搜索字符串的内置方法。您所需要做的就是输入 :/
,然后输入搜索字符串,然后按 Enter
。
在 vim 中搜索文本字符串
通过 GUI 在文件中搜索文本字符串
有大量可用于 Linux 的 GUI 文本编辑器。不同的发行版和桌面环境有自己的软件,因此不可能编写涵盖所有软件的指南。然而,它们的工作原理通常都非常相似,因此我们仍然可以为您提供帮助。 在我们的 Ubuntu 测试机上,我们运行 GNOME,并且可以访问文本编辑器(简称为“文本编辑器”)。我们可以从菜单访问其搜索功能,如下面的屏幕截图所示。
在 GUI 文本编辑器中搜索文本字符串
结束语
在 Linux 上的文件中搜索文本字符串是一项常见任务,而且很容易掌握。 grep 命令被证明非常实用,可以快速获取结果。如果您已经在命令行或 GUI 编辑器中打开了文件,则也可以使用搜索功能。在本指南中,您了解了在 Linux 上的一个或多个文件中查找文本字符串所需的一切。