如何使用 fgrep 命令搜索文件中的文本字符串

言鼎科技 2023-07-14 195

摘要: 在这个适合初学者的指南中,我们将讨论 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 命令的其他最佳示例吗?请在下面的评论中告诉我们您的看法。

言鼎科技

The End