概要

概要

概要

我想将生产数据导入开发环境,以便以几乎准确的方式进行测试。当然,我需要使电子邮件地址无效,因为我不想让电子邮件到达最终用户。

来源

顺便提一下 - 我的表达式故意匹配 ['] 作为查询语法的一部分

到目前为止我已经使用以下内容grep来测试我的表达。

$ cat site_backup.sql | egrep -io '\w+([._-]\w*)@\w+([._-]\w*)\.\w{2,4}'

这是打印电子邮件地址,但当然我需要使用以下内容进行替换sed

$ sed -r -e "s/'(\w+)([._-]\w*)@(\w+)([._-]\w*)(\.\w{2,4})'/\1\2@invalid.\3\4\5/g" -i site_backup.sql

在一小部分电子邮件地址上工作正常;我注意到未被替换的内容存在某种模式'[email protected]'

结论

在为此添加另一个表达式后,它没有影响。我还没有研究过awk我知道它非常强大,所以我对它并不无知,我希望有人能帮忙。

我的目标很简单,我使用mysqldump它导出生产数据库,然后希望在将数据导入开发环境之前替换所有电子邮件地址(或尽可能多)。我可能从一个尴尬的角度来做这件事吗?

答案1

将您的转储导入到新的数据库并使用如下查询:

UPDATE table_name SET email_field_name = REPLACE(email_field_name, '@', '@invalid.');

答案2

我在stackoverflow上找到了一个很好的解决方案: https://stackoverflow.com/a/18355644/1690631

谢谢阿努巴瓦

相关内容