如何为“grep” linux程序正确构造正则表达式,以查找所有电子邮件,例如/etc目录?
目前,我的脚本如下:
grep -srhw "[[:alnum:]]*@[[:alnum:]]*" /etc
它工作正常-可以看到一些电子邮件,但是当我对其进行修改时,可以捕获“@”符号前后的一个或多个字符...
grep -srhw "[[:alnum:]]+@[[:alnum:]]+" /etc
..它完全停止工作
此外,它不会捕获格式为“[email protected]”的电子邮件
救命 !
最佳答案
这是另一个例子
grep -Eiorh '([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})' "$@" * | sort | uniq > emails.txt
此变体适用于3级域。