如何使用 SED 删除电子邮件中 ​​@ 字符前包含三个以上点的行?

如何使用 SED 删除电子邮件中 ​​@ 字符前包含三个以上点的行?
sed '/\(.*\..*\)\{4,\}/d'

上面提到的命令识别行中的每个点......

它也识别 @ 符号后的点。例如,结果中甚至显示如下内容:[电子邮件保护]

您能帮我修改上述命令,使得只有 @ 的左侧才计算超过 3 个的点,而忽略电子邮件右侧字符 @ 后面的点吗?

例如:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

我希望以下在@字符左侧带有多个点(3个或更多点)的行仅作为识别器并从文件中删除。

[email protected]
[email protected]
[email protected]

有哪位专家能指点一下如何修改上述 SED 命令吗?谢谢

答案1

我不是专家,但要删除左侧的 4 个点(或更多)图案,@您只需@.*在表达式末尾添加:

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

@意思是不管右边是什么字符,都删除左边的4个点(或更多)的图案。

相关内容