使用 Grep 命令从文本文件中提取电子邮件

大家好,在本文中,我们将了解如何使用 grep 和 sed 命令从文本文件中提取电子邮件地址。 如果文本文件太大并且不是预定义的格式,那么手动提取每个电子邮件地址就太费时了。 使用诸如 grep 和 sed 之类的命令,可以通过它们的格式提取电子邮件地址或其他任何内容。 对于电子邮件地址,格式为 name@domain。 如果文件中的文本按列排列,我们可以使用 awk 命令。

使用 Grep 命令从文本文件中提取电子邮件地址

grep 命令用于根据模式打印行。 的语法 grep 命令将是

grep -e -o <"pattern"> <filename>

在哪里 -e 选项用于使用分配的模式和 -o 用于仅打印匹配的部分。 电子邮件地址的表达式可以写成,

<username>@<domain>.<address>
[a-zA-Z0-9._]+@[a-zA-Z]+.[a-zA-Z]+

其中 az、AZ 和 0-9 代表字母和数字。 在第一个领域, ._ 给出了允许的电子邮件地址的用户名。 这 + 表示应考虑重复的字母和数字。

在这里,我们有一个名为 abc.txt 的文本文件作为示例,其中包含一些电子邮件地址,如下所示,

要从文本文件中提取电子邮件地址,请执行以下命令:

grep -oe "[a-zA-Z0-9._]+@[a-zA-Z]+.[a-zA-Z]+" abc.txt

如果未使用 -o,它将打印电子邮件地址所在的完整行。 在上面的示例中,它将打印如下所示的输出,

grep -e "[a-zA-Z0-9._]+@[a-zA-Z]+.[a-zA-Z]+" abc.txt
截图来自 2022 02 27 19 33 40

结论

因此,我们讨论了如何使用 grep 命令从文本文件中提取电子邮件地址。 类似地,除了电子邮件地址,其他格式的数字或文本也可以使用 grep 命令提取。 谢谢你的阅读!