使用 SED 匹配 sql 转储中的电子邮件并替换它们

b d*_*nan 6 regex sql grep sed

我正在尝试从 SQL 转储文件中清除电子邮件,我可以使用一些建议。我这样做是因为我想向一些开发人员发送“大部分是正确的”信息,而不共享实际的用户信息。我有一个逐行循环的 BASH 脚本,所以我试图对 INSERT 语句进行 SED 替换。我需要遍历愚蠢的东西,因为我还有一些其他的擦洗东西,这是有效的。我有一些有效的正则表达式(我认为),但我似乎无法将其放入 SED。正则表达式:

'(.*@.*?)'
Run Code Online (Sandbox Code Playgroud)

将匹配“emailname@emaildomain.com”,但我无法将其放入 SED,而且我确信有更好的 REGEX。这是我的示例行。

'firstname','emailname@emaildomain.com','lastname'
Run Code Online (Sandbox Code Playgroud)

我希望能够在引号之间有 @ 时替换为 'empty@invalid'。任何建议将不胜感激。

Jos*_*sey 3

尝试:

sed "s/'[^@']*@[^@']*'/'empty@invalid'/g"
Run Code Online (Sandbox Code Playgroud)

我已将 your 替换.*为更具体的,它仅匹配没有任何单引号或 的[*@']*字符串,这是必需的,因为它是贪婪的'@sed