我在目录中的某些配置文件中有多个电子邮件ID;我正在Solaris机器上运行我的脚本。我想执行以下操作:
在目录中的配置文件中查找所有email_id: 例如:abcd@hotmail.com; dfgh@hotmail.com; mnop@hotmail.com; fghk@hotmail.com
将所有现有ID替换为: wxyz@hotmail.com
以下实现可以帮助我用“gmail”替换配置文件中所有电子邮件ID的“hotmail”。但是我有点困惑解决上述问题
perl -pi -e 's/\@hotmail/\@gmail/g' *
提前致谢!
答案 0 :(得分:4)
尝试
's/\S+@hotmail\.com/wxyz@hotmail.com/g'
答案 1 :(得分:0)
你需要的是一个带有正则表达式/全局替换的编辑器(并确保它创建* .bak文件)
当然,编码很有趣..
答案 2 :(得分:0)
使用heferav发布的解决方案,我似乎没有得到答案
$ more file
abcd@hotmail.com ; dfgh@hotmail.com ; mnop@hotmail.com ; fghk@hotmail.com
$ perl -ne 'print if s/\S+@hotmail\.com/wxyz@hotmail.com/g' file
wxyz.com ; wxyz.com ; wxyz.com ; wxyz.com
也许我错过了什么。 @OP,因为你在Solaris工作,我假设你可以使用nawk
$ nawk '{ for(i=1;i<=NF;i++){gsub(/.*@hotmail.com/,"wxyz@hotmail",$i)} }1' file
wxyz@hotmail ; wxyz@hotmail ; wxyz@hotmail ; wxyz@hotmail