从文本文件中提取电子邮件

时间:2014-10-09 14:43:45

标签: regex linux grep debian

我尝试使用以下内容从文本文件中提取电子邮件:

grep -o ‘[0-9a-zA-Z-_]*@[0-9a-zA-Z-_.]*.[a-zA-Z]*’ infile > outfile.txt

但结果是:

grep: Invalid range end

我不知道为什么......

有人可以帮忙吗? 感谢

1 个答案:

答案 0 :(得分:1)

连字符需要是字符类中的第一个或最后一个字符,以避免转义。如果连字符出现在中间,那么它被认为是一个范围。

试试这个grep:

grep -oE '[0-9a-zA-Z_-]+@[0-9a-zA-Z_.-]+\.[a-zA-Z]+' infile > outfile.txt

你引用的内容看起来也很可疑我已经改变了。