我想运行一个grep命令来搜索文本文件,并且应该将电子邮件地址与某个tld匹配。
示例,如果文本文件包含以下行
tom@google.com
mark@google.com
tom.comber@google.cz
我正在搜索.com
tld电子邮件:
它应与tom@google.com
和mark@google.com
匹配,但不能与tom.comber@google.cz
我目前正在使用follow grep命令,它几乎匹配包含.com的每个字符串。我希望它特别匹配域的域名
grep -rnwi "/Users/Me/Desktop/Folder/" -e ".com"
修改
grep -rnwi '@.+\.com$' "/Users/Me/Desktop/Folder/"
没有任何匹配。但是grep -rnwi "/Users/Me/Desktop/Folder/" -e "hotmail.com"
匹配很多。我不想要hotmail.com,只需要所有.com电子邮件
EDIT2,这似乎也没有任何匹配。是因为我在文件夹中的多个文本文件中搜索?
grep -rnwi '@.\+\.com$' "/Users/Me/Desktop/Folder/"
编辑3:不是很清楚。 .tld
扩展名后面有字符,所以我不得不留下尾随$
。这很有效。
答案 0 :(得分:2)
执行:
grep '@.\+\.com$' file.txt
@.\+
匹配@
后跟一个或多个字符\.com$
最后匹配文字.com
对其他TLD执行相同操作,最后将com
替换为该TLD。