如何在Linux中Grep文本文件中的多个字符串、模式或Regex?

grep 提供许多特性来匹配给定文本中的字符串、模式或正则表达式。最常用的特性之一是匹配两个或多个、多个字符串、模式或正则表达式。在本教程中,我们将查看有关这些特性的不同示例。如果你需要更多关于 regex 请看下面的文章。

enter键 发泄超大号解压回车键usb电脑办公键盘程序员解压神器抖音网红Big Enter午睡枕头解压发送键创意礼物
解压神器 网红同款 一键多用 午睡枕头 | 月销量2010件
优惠价16.68元
原价¥39

淘口令:

¥r4YhX79bp5S¥
 

如何在Bash Linux中使用正则表达式-Regex?

Grep-E或Egrep

在开始示例之前,我们先看看提供相同功能的不同命令。我们可以用 grep 命令 -E 选项或 egrep 命令的别名 grep -E . 它们都是一样的。在本教程中,我们将遵循 grep -E . -E 表示扩展grep,它将允许使用扩展正则表达式功能。

匹配多个字符串

我们将从最简单的例子开始。我们将在给定的文本中匹配给定的多个字符串。在本例中,我们将使用名为 data.txt 作为文本。匹配的字符串将 ismail ali .

$ grep -E "ismail|ali" data.txt
Match Multiple Strings
匹配多个字符串

匹配多个模式或正则表达式

现在我们要在匹配项中使用多个正则表达式或模式。我们可以用同样的方法指定标准正则表达式。我们将用英语改一些字母 . 在这个例子中。

$ grep -E "is.ail|al." data.txt
Match Multiple Pattern or Regex
匹配多个模式或正则表达式

匹配IP地址或域名

现在我们来看看提供IP地址或域名的有用示例。这可能是在日志文件中搜索时的常规操作。我们将使用 [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} 作为IP地址regex和 .[a-z]{1,20}.[a-z]+ 作为域名regex。

$ grep -E "([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})|(.[a-z]{1,20}.[a-z]+)" data.txt
Match IP Address or Domain Name
匹配IP地址或域名

在多个文件中匹配

我们还能够搜索和匹配多个文件。我们可以使用bash glob特性来实现这一点。我们将使用 * 所有的名字和 .txt 匹配本例中的文本文件。

$ grep -E "ismail|ali" *.txt
Match In Multiple Files
在多个文件中匹配

我们可以看到匹配的文件也打印了匹配的文本。

相关文章: 如何在Grep中使用Regex(正则表达式)?

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享