regex - 删除电子邮件模式,使用 grep、awk 或 sed 保留其余模式?

标签 regex email sed grep pattern-matching

我从中得到了这个纯文本,我想删除所有电子邮件地址(或替换为 E)。我想将其他所有内容保留在文本文件中。电子邮件地址后可以跟空格、冒号、分号、问号或感叹号。我使用 gnuwin 并尝试了 grep 但没有得到正确的结果

grep -Eiv "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b" in.txt > out.txt

这将删除包含电子邮件模式的每一行。我只希望电子邮件消失。

谢谢

最佳答案

要替换,请使用 sed 而不是 grep:

sed -r 's/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b//Ig' in.txt > out.txt

关于regex - 删除电子邮件模式,使用 grep、awk 或 sed 保留其余模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29517164/

相关文章:

jquery - 如何用jquery删除一个字符

regex - 匹配 ssh 连接字符串的正则表达式

c# - 电子邮件的显示选项

awk - 为每个 n 列值创建新行,同时保持第 1 列值

regex - 我找不到可以删除起始行和结束行包含大括号的一组行的正则表达式

java - 从 Java 中的 HTML 标记属性中提取值

javascript - 如何删除 "()"之间的文本

email - 如何以良好的成功率发送批量电子邮件?

java - 使用 PHP 的大型邮件发送平台

linux - 使用 sed 匹配第 5 个字段中的文本