我尝试使用以下方法从文本文件中提取电子邮件:
grep -o ‘[0-9a-zA-Z-_]*@[0-9a-zA-Z-_.]*.[a-zA-Z]*’ infile > outfile.txt
但是,结果是:
grep: Invalid range end
不知道为什么...
有人可以帮忙吗? 谢谢
最佳答案
连字符必须是字符类中的第一个或最后一个字符以避免转义。如果连字符出现在中间,则将其视为一个范围。
试试这个 grep:
grep -oE '[0-9a-zA-Z_-]+@[0-9a-zA-Z_.-]+\.[a-zA-Z]+' infile > outfile.txt
您的引用看起来也很可疑,我也已经改变了。
关于regex - 从文本文件中提取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281370/