如何习惯匿名化文件中的所有电子邮件地址

时间:2013-08-21 10:55:01

标签: sed

我正在寻找一种用xxx@xxx.xxx替换文件中所有电子邮件地址的方法 我猜sed是这项工作的合适工具,但我无法找到以健壮和正确的方式完成工作的方法。谢谢。

3 个答案:

答案 0 :(得分:3)

以下是使用sed -r执行该操作的一种粗略方式:

sed -r 's/^(.*? |)[^@]+@[^ ]+/\1xxx@xxx.xxx/g' file

在BSD(例如OSX)上使用此变体:

sed -E 's/(^|.* )[^@]+@[^ ]+/\1xxx@xxx.xxx/g' file

但请记住,电子邮件地址最近可能会有很大不同。

答案 1 :(得分:2)

以下对我有用:

sed "s/[^@ ]*@[^@]*\.[^@ ]*/xxx@xxx.xx/g" file

应用于以下file

charly.chaplin@web.de has an address
so has axel.springer@bild.de
and finally henry@kissinger.info and other stuff

命令C:\Temp>d:sed "s/[^@ ]*@[^@]*\.[^@ ]*/xxx@xxx.xx/g" file让我知道了:

xxx@xxx.xx has an address
so has xxx@xxx.xx
and finally xxx@xxx.xx and other stuff

答案 2 :(得分:1)

这部分混淆了电子邮件地址:

sed -E 's/[a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_]@[a-zA-Z0-9_][a-zA-Z0-9_]/xxxx@xx/g'

我发现这很容易开发。 自动化测试现在可以测试特定的电子邮件地址。