在我的数据集中,我们需要解析大量电子邮件(以及电话号码和地址等无数其他无关信息。)
我正在尝试寻找符合电子邮件条件的内容,但没有正确的电子邮件格式。所以,我尝试使用grep的“AND”函数,它符合第二个参数,但不符合第一个参数。
grep -E -c -v "^[a-mA-M][a-zA-Z]*\.@[A-Za-z]+\.[A-Za-z]{2,6}"Data.bash | grep @ Data.bash
我应该如何实施?因为这只是在其中找到任何带有@的东西(因为第一个参数返回0而第二个参数只是找到了@中的所有内容)。
简而言之,我如何和grep中的两个条件一起?
编辑:示例数据
电子邮件地址具有用户ID,域名可以包含字母,数字, 期间和破折号。
Matches:
saltypickle@gmail.com
saltypickle@g-mail.com
No Match:
saltypickle@g^mail.com
saltypickle@.
@saltyPickle@
saltyPickle@
答案 0 :(得分:0)
grep -P '^\w+@[[:alnum:]-.]+.com' inputfile
saltypickle@gmail.com
saltypickle@g-mail.com
这将允许任何字母,数字,-
或.
作为域名。
以下将打印无效的电子邮件地址:
grep -vP '^\w+@[[:alnum:]-.]+.com' inputfile
saltypickle@g^mail.com
saltypickle@.
@saltyPickle@
saltyPickle@