迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Linux 中的 grep 命令

作者:迹忆客 最近更新:2024/02/01 浏览次数:

本教程演示了使用 grep 命令匹配不区分大小写的模式,计算匹配的数量,显示匹配的文件名,匹配确切的模式,仅显示匹配的模式,显示行号,反转模式匹配,匹配起始字符串并匹配行尾。


Linux 中的 grep 命令

grep 命令表示全局正则表达式打印。grep 命令在给定文件中搜索特定模式。

一旦找到匹配项,grep 命令会显示与该模式匹配的所有行。grep 命令搜索的模式是正则表达式。

grep 命令使用以下语法。

grep [options] pattern [file]

在 Linux 中使用 grep 命令匹配不区分大小写的模式

grep 命令可以匹配不区分大小写的模式。我们使用带有 -i 选项的 grep 命令来匹配忽略区分大小写的模式。

-i 选项告诉 grep 命令忽略模式和文件中数据之间的大小写差异。

下图演示了使用 grep 命令匹配忽略模式和数据之间的大小写区别的模式。我们目前在 foo 目录中,它有 delft.txt 文件。

使用 cat 命令将 delft.txt 文件的内容打印到标准输出。我们使用带有 -i 选项的 grep 命令来匹配 delft.txt 文件中的模式 Havard

输出显示在 delft.txt 中找到了 Havard 的两个匹配项。delft.txt 文件中的匹配对模式有不同的情况。

这是因为 grep 命令中的 -i 选项告诉 grep 命令,而不考虑模式和文件中数据之间的大小写差异。

 


使用 grep 命令计算 Linux 中的匹配数

grep 命令还可以计算正确匹配的数量。带有 -c 选项的 grep 命令打印正确匹配的计数。

在下图中,我们使用带有 -i 选项的 grep 命令来检查 delft.txt 中的模式 Havard。该命令找到两个正确的匹配项。

然后我们使用相同的命令,但是这一次,我们包含了 -c 选项来打印正确匹配的数量,并且该命令显示数字 2

这意味着 delft.txt 文件中的模式 Havard 有两个正确匹配项。


在 Linux 中使用 grep 命令提供匹配的文件名

grep 命令可以给出包含匹配项的文件名。使用带有 -l 选项的 grep 命令会显示包含与模式匹配的文件名。

我们举例说明如何使用 grep 命令返回与模式匹配的文件名。我们在 foo 目录中工作,它有两个文件,delft.txtexample.txt

使用 cat 命令将两个文件的内容显示到标准输出。

我们使用带有 -l 选项的 grep 命令并将模式设置为 text,并传入通配符* 作为 grep 命令的最后一个参数。

-l 选项告诉 grep 命令仅显示包含匹配项的文件名,而不显示文件中的行。

通配符 * 告诉 grep 命令搜索当前目录中的所有文件。

grep 命令打印文件名 example.txt 因为在此文件中找到了模式匹配。


在 Linux 中使用 grep 命令匹配精确模式

我们还可以使用 grep 命令来匹配确切的模式。为此,我们使用带有 -w 选项的 grep 命令。

下图显示了使用 grep 命令来匹配确切的模式。我们有一个名为 delft.txt 的文本文件。我们使用 cat 命令将 delft.txt 文件的内容显示到标准输出。

使用带有 -w 选项的 grep 命令来匹配 delft.txt 文件中 Havard 的确切模式。 -w 选项告诉 grep 命令匹配整个模式。

此选项考虑模式和文件中数据之间的大小写区别。

grep 命令将具有确切模式的行显示到标准输出。


在 Linux 中使用 grep 命令仅显示匹配的模式

使用 grep 命令,我们只能显示包含匹配项的行部分。我们使用带有 -o 选项的 grep 命令。

我们在 foo 目录中,其中包含下图中的 delft.txt 文件。我们使用 cat 命令将文件的内容显示到标准输出。

使用带有 -o 选项的 grep 命令来匹配 delft.txt 文件中的模式 Yale。模式匹配考虑了模式和文件中数据之间的大小写差异。 -o 选项告诉 grep 命令只打印匹配的行部分。

输出显示 grep 命令仅显示与模式匹配的部分。


在 Linux 中使用 grep 命令显示行号

使用 grep 命令,我们还可以显示包含模式匹配的行号。我们可以使用带有 -n 选项的 grep 命令来显示包含模式匹配的行号。

在下图中,我们在 foo 目录中工作。

foo 目录包含一个名为 delft.txt 的文件。我们使用 cat 命令将 delft.txt 的内容打印到标准输出。

使用带有 -i-n 选项的 grep 命令来匹配 delft.txt 文件中的模式 Yale-i 告诉 grep 命令忽略模式和文件中数据之间的大小写差异。 -n 选项告诉 grep 命令打印出匹配的行号。

从输出中,我们可以看到已经为包含匹配项的行打印了行号。


在 Linux 中使用 grep 命令反转模式匹配

使用 grep 命令,我们可以显示所有不包含与模式匹配的文件行。我们可以使用带有 -v 选项的 grep 命令。

-v 选项告诉 grep 命令只显示那些与提供的模式不匹配的行。

在下图中,我们在 foo 目录中工作。

foo 目录有 delft.txt 文件。我们使用 cat 命令将 delft.txt 文件的内容显示到标准输出。

我们使用带有 -v 选项的 grep 命令来显示与 delft.txt 文件中的 MIT 模式不匹配的所有行。输出显示所有不包含 MIT 模式的行。


在 Linux 中使用 grep 命令匹配起始字符串

我们可以使用 grep 命令显示文件中以特定字符串模式开头的所有行。我们可以通过使用^正则表达式模式来做到这一点。

^ 指定匹配应该是以^ 之前的模式开头的行。

在下图中,我们将 grep 命令的匹配项指定为^J。这意味着 grep 命令应该在 delft.txt 文件中查找以字母 J 开头的行。

标准终端上的输出显示了 delft.txt 文件中所有以字母 J 开头的行。


在 Linux 中使用 grep 命令匹配行尾

grep 命令还可以匹配以特定模式结尾的行。我们使用 $ 正则表达式来匹配行尾。

我们在下图中将 grep 命令的匹配项指定为 rd$。这意味着 grep 命令应该在 delft.txt 文件中查找以字符串模式 rd 结尾的行。

成功匹配模式的两行已显示到标准终端。

上一篇:等待 Windows 批处理文件中的命令完成执行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Bash 脚本中的 eval 命令

发布时间:2023/06/11 浏览次数:313 分类:操作系统

本文是关于在 Bash 脚本中使用字符串作为命令的。 为此,使用了 eval 命令。Bash 脚本中的 Eval 命令 在某些 Bash 脚本中,您必须使用变量或输入值(例如)创建一个字符串,并在最后将其作为命

退出 Bash 脚本

发布时间:2023/06/11 浏览次数:251 分类:操作系统

本文简要介绍 Bash 脚本,并讨论在出现错误时退出 Bash 脚本。 它进一步讨论了 Bash 脚本的局限性和好处。什么是 Bash 脚本 计算机脚本/程序告诉计算机做什么和说什么。

Bash 中的 timeout 命令

发布时间:2023/06/11 浏览次数:123 分类:操作系统

本文是使用 Bash 中 GNU 的 coreutils 包的 timeout 命令为特定程序设置超时的简单指南。Bash 中的 timeout 命令

在 Bash 中检查语法

发布时间:2023/06/11 浏览次数:111 分类:操作系统

在 Bash 脚本中情况并非如此,因为 Bash 是一个命令行解释器。 因此,我们需要单独检查语法错误。可以有不同的技术来检查语法问题,如下所示。

使用 Bash 对文本文件中的数字列表求和

发布时间:2023/06/11 浏览次数:127 分类:操作系统

本篇文章将介绍使用 Bash 脚本对文件中的数字列表求和的多种方法。 第一种方法涉及使用粘贴命令,我们将讨论两种情况:使用现有文件和使用标准输入读取文件。

在 Bash 中传递所有参数

发布时间:2023/06/11 浏览次数:217 分类:操作系统

在 Bash 脚本中,我们主要使用语法 $1 $2 $3 ... $N 在函数中传递变量。此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中传递所有参数

在 Bash 中解析 XML

发布时间:2023/06/11 浏览次数:185 分类:操作系统

本文将展示我们如何通过 Bash 解析 XML。我们将在这里讨论两个库。 我们的第一个库是 xmllint,第二个库称为 XMLStarlet。在 Bash 中使用 xmllint 解析 XML

Bash 脚本中的 Echo Tab 字符

发布时间:2023/06/11 浏览次数:226 分类:操作系统

本文演示了如何回显特殊字符(例如制表符),否则这些字符会在 Bash 脚本中转换为单个空格字符。 这扩展到 Bash 以外的 shell(例如 zsh)。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便