Grep命令提取电子邮件地址

Grep命令提取电子邮件地址,grep,Grep,所以我使用下面的grep命令来搜索很多文件。 我想让它的模式匹配的只是有效格式的电子邮件地址 grep -rnw ./ -e "email here" 我的问题是,我应该使用什么语法来代替“email here”来指定有效格式电子邮件的模式?那会是某种正则表达式吗?关于使用正则表达式的好想法,你可以在网上找到很多例子。 有一个示例可用于: [-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4} 如果您在使用正则表达式方面有任何问题,wikipedia

所以我使用下面的grep命令来搜索很多文件。 我想让它的模式匹配的只是有效格式的电子邮件地址

grep -rnw ./ -e "email here"

我的问题是,我应该使用什么语法来代替“email here”来指定有效格式电子邮件的模式?那会是某种正则表达式吗?

关于使用正则表达式的好想法,你可以在网上找到很多例子。 有一个示例可用于:

[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}
如果您在使用正则表达式方面有任何问题,wikipedia仍然是一个学习的好地方:(查看“字符类”段落)


可能的重复最初我以为这是重复的,但现在我不太确定,因为OP只是暗示使用正则表达式,而不是直接要求使用正则表达式。我鼓励您看看标记为重复的问题,也许你会意识到使用正则表达式提取有效电子邮件地址的复杂性:)如果你有一个像
hanson@canon.camera
因为这里定义的顶级域超过4个字符。更多顶级示例,请参见此处: