<div dir="ltr"><br><div><div>So I have this script that does deployments of large numbers of virtual machines by cloning from a template and customizing the clone based on the contents of a CSV file.   It&#39;s not especially pretty, but the functionality is there, it&#39;s pretty solid (sans ONE bug).   It doesn&#39;t adjust the ip addresses in /etc/hosts properly.   I was hoping the cluebies might provide some advice.   Our /etc/hosts files look like this:</div>
<div><br></div><div><div>xx.xx.xx.xx (server).domain</div><div>xx.xx.xx.xx (server)gpfs server.domain</div></div><div><br></div><div>the code from the script looks like this:</div><div><br></div><div><div>#changes IP addresses in /etc/hosts</div>
<div><span class="" style="white-space:pre">                                        </span>$cmd = &quot;sed -i &#39;s/[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9] $VMName /$publicIP/g&#39; /etc/hosts&quot;</div><div><span class="" style="white-space:pre">                                        </span>Invoke-VMScript -VM $VMName -GuestUser &quot;root&quot; -GuestPassword $guestPass -ScriptText $cmd -Confirm:$false</div>
</div><div><br></div><div>There&#39;s two logical problems I&#39;m trying to solve.</div><div><br></div><div>Problem#1 is we have two common IP spaces, one of which is xx.xx.xx.xx, and the other is xx.xx.xxx.xxx.  Obviously with the regex the way it is, it only catches xx.xx.xx.xx.</div>
<div><br></div><div>Problem#2 is how to adjust the sed command so that it replaces the public line with the public address, and the gpfs line with the gpfs address.</div><div><br></div><div>I&#39;m kinda scratching my head here trying to figure out a regex that would fit the bill, advice is appreciated.</div>
<div><br></div><div>(Oh, distro is RHEL6.3)</div><div><br></div><div>eep - the longer I look at that, the more I realize that sed is all kinds of messed up.</div><div><br></div><div>Mike B.</div></div></div>