对于 Linux 用户来说,在一个或多个文件中搜索单词的需求经常会出现。
有许多不同的应用程序都可以很好地完成这项工作。哪一个应用程序最适合您取决于您的需求和偏好。这些应用程序主要通过以下特征来区分:
- 命令行工具 vs. 带图形界面的工具。
- 它们是只能在文本文件中搜索,还是也能在所有常用文档类型中搜索。
- 它们是否使用索引。
在本文中,我们将为您介绍不同类型的搜索应用程序,以便您可以选择最适合自己的一款。
注意:如果您是 Mac 用户,可以查看我们的文章 如何在 Mac 上搜索。
1. 使用 grep 工具搜索文本文件
关于 grep 工具
在 Linux 中,最受欢迎的命令行文本搜索工具是 grep。它创建于 45 多年前!其开发者是美国计算机科学家 Ken Thompson。
Grep 可以搜索各种文本文件(.txt、.html、.xml 等),但不能搜索 OpenOffice 文件、PDF 文件等其他类型的文档。
事实上,根据 Hostinger 的说法,grep 命令位列 Linux 中最常用命令的前 15 名。

该工具受 UNIX、Linux 和 Mac 操作系统支持。
还有一个适用于 Windows 的 grep 替代方案,名为 findstr,您可以在我们的文章 如何在 Windows 10 中搜索文件 中了解更多信息。
如何使用 grep 工具
grep 工具内置于操作系统中,因此您无需安装它。
使用 grep 命令在单个文件中查找字符串的最简单语法是:
grep 'searched-word' filename
默认情况下,grep 搜索区分大小写。
让我们逐步为搜索添加最有用的选项。
1. 使用 “-i” 选项使搜索不区分大小写:
grep 'searched-word' filename
2. 使用 “-r” 选项递归搜索指定目录中的所有文件:
grep 'searched-word' '/directory'
3. 使用 “-w” 选项仅搜索完整单词:
grep 'searched-word' '/directory'
4. 使用 “-n” 选项输出找到目标单词的行号:
grep 'searched-word' '/directory'
5. 搜索多个单词的语法:
grep 'word1|word2|word3' '/directory'
更多有用的 grep 选项可在官方 Grep Manual 中找到。
grep 工具的优点和缺点
像任何软件工具一样,grep 在带来便利的同时也有一些缺点。让我们总结一下它的优缺点。
优点:
- 通过广泛的选项提供极高的灵活性。
- 能够高效处理正则表达式。
- 内置于操作系统中。
缺点:
- 除文本文件外,无法搜索其他任何类型的文档。
- 没有图形界面。
- 结果中较长文本行的阅读较为困难。
- 与 ack 相比,在源代码搜索方面没那么强大。
2. SearchMonkey
SearchMonkey 是一款适用于 Linux 操作系统的免费开源 GUI 应用程序,它利用了 grep 工具的功能。SearchMonkey 也适用于 Windows 和 Mac 用户。
除了搜索文本文件之外,SearchMonkey 还支持:
- OpenOffice 和 LibreOffice 文件(.odt)。
- Microsoft Office 文件(.docx)。
- PDF 文件(.pdf)。
该工具可以递归搜索目录,并返回文件名以及您搜索内容的高亮显示片段。
按照以下步骤安装并使用该工具:
1. 在终端中使用以下命令安装应用程序:
sudo apt install searchmonkey
2. 启动应用程序。
3. 选择要搜索的文件夹。

4. 勾选 “Containing” 复选框,输入搜索词并按 “Enter”。

5. 单击左侧窗格列表中的文件,即可查看找到的文本片段。

如果您想搜索特定目录,请单击 “Advanced” 选项卡并选择所需文件夹。
在 “Advanced” 窗格中,您可以使用附加条件来筛选结果,例如文件大小、最后修改日期等。

使用 SearchMonkey,您还可以像在 grep 工具中一样使用正则表达式。
优点:
- 完全免费且开源。
- 轻量且易于使用。
- 不使用索引。
- 提供许多用于细化搜索的选项。
- 支持正则表达式。
缺点:
- 性能较慢,不适合大型目录。
- 不支持 RTF、Excel(.xlsx、.xls)、PowerPoint(.pptx、.ppt)、旧版 Word(.doc)以及其他流行文档类型。
- 无法搜索出现在同一句中的单词组合。
- 不会在一个地方显示所有结果行,您必须逐个检查文件。
3. Recoll
Recoll 是一款桌面搜索工具,适用于 Linux、Windows 和 MacOS。Linux 版本免费。它不仅可以搜索文本文件,还可以搜索大多数常见文档格式,包括:
- OpenOffice 和 LibreOffice 文件(.odt)。
- Microsoft Office 文件(.docx、.xlsx、.xls、.ppt)。
- PDF 文件(.pdf)。
- AbiWord 文件(.abw)。
默认情况下,Recoll 会为您 “home” 目录中的文件建立索引,这可能需要一些时间。
以下是安装和使用该程序的步骤:
1. 使用以下命令安装 Recoll:
sudo apt-get install recoll
2. 启动应用程序。
3. 在 “First indexing setup” 窗口中单击 “Start indexing now”。

4. 在 “Missing helper programs” 消息框中单击 “OK”。

5. 输入搜索词并按 “Enter”。
6. 在结果列表中,单击 “snippets” 以查看所有包含搜索词的文本片段。

7. 在 “Snippets” 窗口中,您可以看到搜索词所在的页面和行。

如果您需要在 “home” 目录之外的文件夹中搜索,请转到 “File” -> “Special indexing”,然后单击 “Browse” 按钮选择所需目录。
优点
- 对 Linux 用户免费。
- 支持大多数常见文档类型。
- 图形界面易于使用。
- 支持高级搜索选项。
- 无需打开文件即可预览文档。
缺点
- 尽管该应用程序使用了索引,但搜索速度仍相对较慢。
- 不支持 Word 97-2003 “.doc” 格式,也不支持 PowerPoint “.pptx” 文件格式。
- 无法搜索单词组合。
- 您必须点击每个结果的 “snippets” 才能看到找到的片段。
4. DocFetcher
DocFetcher 是一款免费开源的桌面搜索工具,适用于 Linux、Windows 和 MacOS。除了文本文件格式外,它还支持您可能会使用的几乎所有文档格式:
- Microsoft Office 97-2003 文件(.doc、.xls、.ppt)。
- Microsoft Office 2007-365 文件(.docx、.xlsx、.pptx、.docm、.xlsm、.pptm)。
- Microsoft Outlook 电子邮件文件(.pst)。
- OpenOffice 文件(.odt、.ods、.odg、.odp、.ott、.ots、.otg、.otp)。
- PDF 文件(.pdf)。
- 富文本格式(.rtf)。
- AbiWord 文件(.abw、.zabw)。
- 以及其他格式。
以下是使用 DocFetcher 的简要说明:
1. 使用以下命令安装 DocFetcher:
sudo snap install docfetcher
2. 启动 DocFetcher
3. 在左下角的 “Search Scope” 窗格中单击右键,然后选择 “Create index from”->“Folder”。

4. 选择一个文件夹,为索引命名,然后单击 “Run” 按钮。

5. 等待索引创建完成。准备就绪后,您会在左侧的 “Search Scope” 窗格中看到一个勾号。

6. 输入搜索词并按 “Enter”。

7. 单击文件名即可查看包含搜索词的文本片段。您可以使用 “up” 和 “down” 箭头在结果中导航。

优点
- 免费开源应用程序。
- 它有便携版。
- 可以搜索压缩包格式(.zip、.7z、.rar、.tar)。
- 提供附加搜索选项——通配符、相似词、邻近搜索等。
缺点
- 对于大型文件夹,创建索引可能需要很长时间。
- 无法执行不区分大小写的搜索。
- 文本结果中的导航不够友好。
- 无法搜索句子中的单词组合。
5. Regexxer
regexxer 应用程序为使用 perl 风格正则表达式提供了丰富的可能性。它是一款免费开源、具有用户友好图形界面的应用程序,创建于 2002 年。
Regexxer 仅适用于 Linux,并且您可以在 Debian 和 Ubuntu 上最方便地安装它。
以下是使用 Regexxer 的方法:
1. 使用以下命令安装应用程序:
sudo apt-get install regexxer
2. 启动应用程序,选择搜索文件夹,并确保选中 “recursive” 复选框。
3. 单击 “Find files” 按钮。

4. 在 “Search” 框中输入搜索词,然后单击 “Find” 按钮。

5. 使用底部的箭头在结果中导航。

6. 在左侧窗格中,您可以看到相应文件中的结果数量;在右侧窗格中,可以看到包含搜索词的文本。
优点:
- 完全免费且开源。
- 易于安装和使用。
- 图形界面简洁直观。
- 支持所有类型的 perl 风格正则表达式。
- 在结果中高亮显示搜索词。
- 不使用索引。
缺点:
- Regexxer 比其他类似应用程序更慢。
- 有时会无响应或意外关闭。
- 除文本文件外,无法搜索其他任何类型的文档。
- 无法搜索出现在同一句中的单词组合。
结论
希望您喜欢这份关于在 Linux 中查找文本文件的指南。
我完全清楚,对于文中介绍的这些应用程序,还可以补充更多内容,而且这个领域还有许多其他有用的工具。
现在我想听听您的看法:在本文介绍的这些应用程序中,哪一个对您最有用?您在使用这些工具时遇到过什么问题吗?您还想补充这一主题下其他重要的内容吗?
欢迎在下方评论区发表评论,告诉我您的想法。

