我收到了这个简单的文字,我想删除所有的电子邮件地址(或替换为E)。我想在文本文件中保留其他所有内容。电子邮件地址后面可以跟空格,冒号,分号,问号或感叹号。我使用gnuwin并尝试使用grep,但没有得到正确的结果
grep -Eiv "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b" in.txt > out.txt
这将删除包含电子邮件模式的每一行。我只想要电子邮件消失。
谢谢
答案 0 :(得分:2)
替换使用sed
而非grep
:
sed -r 's/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b//Ig' in.txt > out.txt
答案 1 :(得分:1)
结合两个答案(frhd和anubhava)我得到的代码我不会。
sed -r "s/([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})//g" in.txt > out.txt
它会删除文本文件中的所有电子邮件
答案 2 :(得分:0)
正则表达式版本:
([a-zA-Z0-9\._%+-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})[\ \:\;\?\!]?