linux - 如何删除电子邮件中包含三个以上点的行?
问题描述
我们如何删除电子邮件地址中超过三个点的行?我们如何使用 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
解决方案
sed '/^\(.*\..*\)\{3,\}@/d'
从行首开始匹配零个或多个任意字符,然后是一个点,然后是零个或多个任意字符,3 次或更多次,然后匹配一个@
符号。删除匹配的行。
推荐阅读
- c++ - GCC 中的 TSan 报告 Clang 没有的错误
- html - 在背景图像顶部添加徽标
- angular - 如何使用 Angular6 仅使用 FormArray 创建反应式表单?
- liferay - 需要在Liferay 7.1的Friendly URL中为基础页面添加参数
- python - 子图问题
- laravel - 不显示 1 个变量是否等于 0 而另一个变量在 laravel 中为空
- android - 如何通过 AutoValue 将 MapStruct 用于不可变值类(适用于 Android)
- python - “OneToOneField”的实例没有“用户名”成员
- r - 尝试在 r 中循环时出现预期的 LPAREN 错误
- dialogflow-es - 从谷歌操作设置灯光