我正在寻找一种用xxx@xxx.xxx替换文件中所有电子邮件地址的方法 我猜sed是这项工作的合适工具,但我无法找到以健壮和正确的方式完成工作的方法。谢谢。
答案 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'
我发现这很容易开发。 自动化测试现在可以测试特定的电子邮件地址。