首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用linux grep查找电子邮件

使用linux grep查找电子邮件
EN

Stack Overflow用户
提问于 2017-07-19 00:28:36
回答 2查看 1.1K关注 0票数 0

如果这个问题以前有人问过并回答过,我很抱歉。我找不到任何东西。

如何使用linux / regex查找电子邮件地址中的未知字符?例如,假设我们有这样的列表:

userone:123456@example.com usertwo:123@example.com userthree:12@example.com

我如何才能在列表中找到与***@example.com相匹配的电子邮件?(唯一能从中找到的电子邮件是123@example.com)

我知道grep -e '...@example\.com'可以工作,但是句点可以表示中的任何字符,所以这样做也可以找到:12@example.com。此外,大多数电子邮件地址不包含任何字符,它们通常仅限于字母、数字、句点和下划线(许多电子邮件提供者不允许任何其他内容)。

除了grep中的句点符号之外,我还需要使用其他的东西,比如a-Z0-9.u,这样就可以包含字母、数字、句点和下划线,而不包括其他任何内容。我不知道该怎么做。谢谢

编辑:到目前为止,我尝试过的是:grep -e '[a-zA-Z0-9_.]{3}@example.com' *。这不起作用,所以只能说是我弄错了。

EN

回答 2

Stack Overflow用户

发布于 2017-07-19 01:11:51

如果电子邮件地址总是前面有一个用户名,然后是一个冒号或空格,然后是电子邮件地址,那么您可以使用这些知识来限制您的匹配。

用户名是什么样子的?你需要知道你是否要用它来找到匹配物。假设现在它是字母,数字,破折号和下划线,它总是以字母开头,从2到12个字符长。我们也知道它后面有个冒号或空格。它的准则是

代码语言:javascript
复制
[A-Za-z][A-Za-z0-9_-]{1,11}[: ]

然后是你的电子邮件地址,听起来,这是你决定和输入的东西,因为这是你现在想要的。

您的test*****@example.com示例将是

代码语言:javascript
复制
[A-Za-z][A-Za-z0-9_-]{1,11}[: ]test.\+@example.com

或者,如果在“测试”之后正好有5个字符

代码语言:javascript
复制
[A-Za-z][A-Za-z0-9_-]{1,11}[: ]test.....@example.com

您的原始示例***@example.com是“example.com上的任意3字符地址”,并且将是

代码语言:javascript
复制
[A-Za-z][A-Za-z0-9_-]{1,11}[: ]...@example.com

这将是一个痛苦的重新键入前缀的所有时间,所以你会想要包装在一个脚本使用prefix + what_i_typed作为模式。

票数 1
EN

Stack Overflow用户

发布于 2017-07-19 00:39:28

试试这个命令行,我用来在任何文件中找到任何东西。

代码语言:javascript
复制
 grep -r -i @example.com ./
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45179114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档