Linked Questions

Popular Questions

Sed deleting xml file contents if !{q100}; return is used

Asked by At

I have a sed command I wish to run from within a bash script on a large xml file.

sed -i '/$OLD_IP_ADDRESS/!{q100};  {s/$OLD_GATEWAY/$NEW_GATEWAY/}'   $system_file 

where , if $OLD_IP_ADDRESS is present I substitute $OLD_GATEWAY for $NEW_GATEWAY (IPs) but $OLD_IP_ADDRESS if it is not present then I return 100

I am using the following from

Return code of sed for no match

as an example

kent$  echo "foo" | sed  '/foo/!{q100}; {s/f/b/}'
boo
kent$  echo $?
0

However when I run the command it removes the entire body of the xml and only leaves me with the header line

I have tried numerous variations of this but don't understand/see where I'm blanking the file.

I have searched but cant find info on this so any help would be most appreciated.

Related Questions