我有一些脚本,其中有许多不同域名的电子邮件地址(例如 domain1.com
,domain2.com
)。我想将它们全部替换为一个通用域名下的泛用电子邮件地址,例如 domain.com
,同时保持脚本其余部分不变。
我正在使用以下命令 sed
,但是它似乎无法起作用。(它返回与输入相同的输出,因此看起来搜索无法匹配。然而,当我在在线测试器中测试正则表达式 \S+@\S+/
时,似乎它可以匹配电子邮件地址。)
s/\S+@\S+/genericid@domain.com/g
例如,我有两个脚本:
$ cat script1.sh
abcd.efg@domain.com
export SENDFROM="xyz@domain1.com" blah_4
$ cat script2.sh
echo foo|mailx -s "blah" pqr@domain2.com,def@domain.com,some@domain.com
omg@domain.com
foo abc@domain.com bar
sed -i
命令执行后我的结果应该是:
$ cat script1.sh
genericid@domain.com
export SENDFROM="genericid@domain.com" blah_4
$ cat script2.sh
echo foo|mailx -s "blah" genericid@domain.com,genericid@domain.com,genericid@domain.com
genericid@domain.com
foo genericid@domain.com bar
我正在使用Linux 3.10.0-327.28.2.el7.x86_64
请问有什么建议吗?
更新:
我已经通过's/\S\+@\S\+.com/genericid@domain.com/g'
使其正常工作。之前的search
有两个问题。
+
需要在它前面加上\
.- 由于文件中还有其他的
@
行(用于数据库连接),因此我必须在末尾添加.com
,因为我所有的地址都以.com
结尾。