首页 > 解决方案 > 如何删除电子邮件中包含三个以上点的行?

问题描述

我们如何删除电子邮件地址中超过三个点的行?我们如何使用 sed 命令来做到这一点?

例如:

fgtc21_pk@yahoo.com
bhchemitex@chemitex.com
hjcindysun48@hotmail.com
hhconsult_sa.jan.2020@yahoo.com
s.ing.song.lan.g.ju.n.55.l@gmail.com
VB.t.o.t.all.y.f.it.s.19.99@gmail.com
a.lice.i.n.wonde.r.lnd.2.1.f@gmail.com

我希望从文件中删除带有多个点(3 个或更多点)的以下行。

s.ing.song.lan.g.ju.n.55.l@gmail.com
VB.t.o.t.all.y.f.it.s.19.99@gmail.com
a.lice.i.n.wonde.r.lnd.2.1.f@gmail.com

标签: linux

解决方案


sed '/^\(.*\..*\)\{3,\}@/d'

从行首开始匹配零个或多个任意字符,然后是一个点,然后是零个或多个任意字符,3 次或更多次,然后匹配一个@符号。删除匹配的行。


推荐阅读