如何使用 fgrep 命令搜索文件中的文本字符串
摘要: 在这个适合初学者的指南中,我们将讨论 fgrep 命令的一些实际示例。在本指南结束时,用户将能够使用命令行界面高效地执行文本搜索操作。
文本搜索是最常见的任务之一。然而,如果用户不熟悉适当的工具,这个简单的任务很快就会变得耗时。在Linux中,有各种文本删除工具,例如sed、cut等。
然而,在 Linux 中,fgrep 是简单文本检测的首选工具。在本指南中,我们将介绍一些可在日常生活中使用的 fgrep 命令行为的示例。
Linux 中的 fgrep 命令属于 grep 命令系列。但是,它用于查找默认字符串格式而不是正则表达式。所以命令名称是fgrep(固定GREP)。
fgrep 命令与其他 grep 系列命令具有相同的语法:
$ fgrep [选项] 模式 [文件]
首先,我们创建一个包含以下内容的纯文本文件来使用示例:
$猫输入.txt
在这里我们可以看到文本文件已准备好包含示例内容。现在让我们在接下来的几个示例中探讨 fgrep 命令的一些常见示例。
1. fgrep 与 grep 和 egrep 命令有何不同?
顾名思义,fgrep 命令用于搜索标准字符串参数。它将模式解释为固定字符串而不是正则表达式。因此它以节省时间的方式进行搜索。
为了理解差异,让我们使用点(.)脚本和 grep 命令。
这个简单的正则表达式匹配除行尾之外的任何单个字符:
$ grep 哈。输入.txt
从上面的结果中,我们可以看到点(.)字符对应于拼写 har、hat 和 has。
现在,让我们使用 fgrep 命令使用相同的示例并查看输出:
$ fgrep 哈。输入.txt
从上面的结果中,我们可以看到该命令未能找到给定的模式。
发生这种情况是因为 fgrep 命令无法识别正则表达式并尝试查找不存在的模式 - \ha.”。
[ 您可能还喜欢: Linux 中的 Grep、Egrep 和 Fgrep 之间有什么区别?]
2. 如何在文件中搜索模式
让我们从基本示例开始,在 input.txt 文件中搜索字符串 professional:
$ fgrep 专业人员 input.txt
正如我们所看到的,模型拟合在两个点成功并标记为红色。
3. Alesi Nàɖo Grep 输出 Amadede Na 匹配模式
在前面的示例中,我们看到,默认情况下,相关图像以红色突出显示。但是,我们可以通过为环境变量分配附加值来更改此行为GREP_COLOR。
让我们将值 32 分配给GREP_COLOR环境变量,以绿色突出显示相关模型:
$ 导出 GREP_COLOR=32
$ fgrep 专业人员 input.txt
现在,在继续下一个示例之前,删除 GREP_COLOR 环境变量以启用第一个操作:
$ 取消设置 GREP_COLOR
4. 如何搜索文件中的多个副本
有时我们需要对多个线程进行模式匹配。在这种情况下,我们可以提供文本文件中的示例而不是命令参数。
让我们创建一个文本文件,其中一行包含多个图像:
$ 猫模式.txt
专业人士
网站
现在,让我们使用此文件以及-f匹配多个模型的选项:
$ fgrep -f 模式.txt 输入.txt
从上面的结果可以看出,线程操作符和数据库的模式匹配成功。
5. 如何限制文件中有效对象的数量
默认情况下,fgrep 命令继续执行模式匹配,直到处理整个文件。
但有时我们需要限制球的数量。在这种情况下,我们可以将-m年份选项与命令一起使用:
$ fgrep -m 1 专业人员 input.txt
TecMint 于 2012 年 8 月 15 日由技术专业人士和所有
在此示例中,fgrep 命令在与第一个示例匹配后停止文件处理。
6. 搜索花样时如何打印文件名
有时我们只需要找到包含特定模式的文件的名称。在这种情况下,我们可以使用-lfgrep 命令中的选项:
$ fgrep -l 专业人员 input.txt
输入.txt
在这里我们可以看到该命令只打印文件名而不是相同格式的行。
7. 模式匹配失败时如何打印文件名
在前面的示例中,我们了解了如何在模式匹配成功时打印文件名。现在,让我们看看如何反向完成这项工作。
让我们尝试找到文件中不存在的模式并查看结果:
$ fgrep -L 不存在的单词 input.txt
输入.txt
在此示例中,我们-L在命令中使用了在模式匹配失败时打印文件名的选项。
8. 如何停止错误消息
在编写 shell 脚本时,错误处理起着重要作用。然而,在一些非关键情况下,我们可以安全地忽略错误消息。
在 fgrep 中,我们可以使用-s一个选项来抑制与不存在或不可读文件相关的错误。为了更好地理解这种行为,让我们尝试在不存在的文件中找到一个示例:
$ fgrep -s 专业人士不存在的文件.txt
$回声$?
2
从上面的输出中,我们可以看到该命令在标准错误流上没有显示任何错误。但是,会以非零返回值报告失败。
除此之外,如果文件不可读,我们还可以观察到相同的行为。因此,首先使用 chmod 命令编辑文件权限:
$ chmod 000 输入.txt
$ ls -l 输入.txt
现在,尝试找到模式并查看结果:
$ fgrep -s 专业人员 input.txt
$回声$?
在本文中,我们讨论 fgrep 命令的一些很好的示例。初学者可以在日常生活中使用这些示例来提高使用 Linux 的性能。
您知道 Linux 中 fgrep 命令的其他最佳示例吗?请在下面的评论中告诉我们您的看法。