我的目标是匹配属于 Yahoo! 的电子邮件地址。域家族。在 *nix 系统(我将使用 Ubuntu)中,这些匹配模式的方法中的任何一种都有哪些优点和缺点?
如果还有我无法想象的另一种更优雅的解决方案,请分享。
他们来了:
grep -Ei "@(yahoo|(y|rocket)mail|geocities)\.com"
tr [:upper:] [:lower:] < /path/to/file.txt | grep -E "@(yahoo|(y|rocket)mail|geocities)\.com"
- 为模式中的每个字符包含一个字符集(下面的内容当然不会匹配“@rOcketmail.com”之类的内容,但您会知道如果我检查每个字符的大小写,它会变成什么):
grep -E "@([yY]ahoo|([yY]|[rR]ocket)[mM]ail|[gG]eo[cC]ities)\.[cC][oO][mM]" /path/to/file.txt
grep -i
结果比 grep 之前转换为 lowers 慢得多,所以我最终使用了 #2 的变体。
感谢@mike-w 提醒我一个简单的测试会有很长的路要走。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)