简体   繁体   English

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

[英]deleting email pattern, keeping the rest using grep, awk or sed?

I got this plain text from wich I want to delete all email adresses (or replace by E). 我得到了这个纯文本,我想删除所有的电子邮件地址(或替换为E)。 I want to keep everything else in the text file. 我想在文本文件中保留其他所有内容。 The email adresses can be followed by a space, colon, semicolon, question or exclamation mark. 电子邮件地址后面可以跟空格,冒号,分号,问号或感叹号。 I work with gnuwin and tried grep but didn't got the right result 我使用gnuwin并尝试grep但没有得到正确的结果

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

This removes every line containing the email pattern. 这将删除包含电子邮件模式的每一行。 I want only the emails gone. 我只想要电子邮件消失。

thank you 谢谢

对于替换使用sed而不是grep

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

Combining both answers (frhd and anubhava) I get the code I wan't. 结合两个答案(frhd和anubhava)我得到的代码我不想。

sed -r "s/([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})//g" in.txt > out.txt

It removes every email from the text file 它会从文本文件中删除每封电子邮件

Regex version: 正则表达式版本:

([a-zA-Z0-9\._%+-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})[\ \:\;\?\!]?

https://regex101.com/r/qJ2eG7/1 https://regex101.com/r/qJ2eG7/1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM