如何为“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级域。

10-06 05:43