大家好,在本文中,我们将了解如何使用 grep 和 sed 命令从文本文件中提取电子邮件地址。 如果文本文件太大并且不是预定义的格式,那么手动提取每个电子邮件地址就太费时了。 使用诸如 grep 和 sed 之类的命令,可以通过它们的格式提取电子邮件地址或其他任何内容。 对于电子邮件地址,格式为 [email protected]。 如果文件中的文本按列排列,我们可以使用 awk 命令。
使用 Grep 命令从文本文件中提取电子邮件地址
grep 命令用于根据模式打印行。 的语法 grep 命令将是
grep -e -o <"pattern"> <filename>
在哪里 -e
选项用于使用分配的模式和 -o
用于仅打印匹配的部分。 电子邮件地址的表达式可以写成,
<username>@<domain>.<address>
[a-zA-Z0-9._][email protected][a-zA-Z]+.[a-zA-Z]+
其中 az、AZ 和 0-9 代表字母和数字。 在第一个领域, . 和 _ 给出了允许的电子邮件地址的用户名。 这 + 表示应考虑重复的字母和数字。
在这里,我们有一个名为 abc.txt 的文本文件作为示例,其中包含一些电子邮件地址,如下所示,
要从文本文件中提取电子邮件地址,请执行以下命令:
grep -oe "[a-zA-Z0-9._][email protected][a-zA-Z]+.[a-zA-Z]+" abc.txt
如果未使用 -o,它将打印电子邮件地址所在的完整行。 在上面的示例中,它将打印如下所示的输出,
grep -e "[a-zA-Z0-9._][email protected][a-zA-Z]+.[a-zA-Z]+" abc.txt
结论
因此,我们讨论了如何使用 grep 命令从文本文件中提取电子邮件地址。 类似地,除了电子邮件地址,其他格式的数字或文本也可以使用 grep 命令提取。 谢谢你的阅读!