Replacing in SED

I want to change the false in Node 1 to true. How do I do that?
<Node1>
<Usage>false</Usage>
<Url>ABC</Url>
</Node1>

<Node2>
<Usage>false</Usage>
<Url>DEF<Url>
</Node2>

Try:

/tmp # echo "
> <Node1>
> <Usage>false</Usage>
> <Url>ABC</Url>
> </Node1>
>         
> <Node2>
> <Usage>false</Usage>
> <Url>DEF<Url>
> </Node2>" | sed -e 's/false/true/g'

<Node1>
<Usage>true</Usage>
<Url>ABC</Url>
</Node1>

<Node2>
<Usage>true</Usage>
<Url>DEF<Url>
</Node2>

or:

sed -e 's/false/true/g' file > file.new

Regards,
Nir

sed -e "/<Node1>/,/<\/Node1>/{s_<Usage>false</Usage>_<Usage>true</Usage>_}" file.old > file.new

I am getting command garbled

sed 's#<Usage>false#<Usage>true#g' myFile

Thanks but it converts both the values to true

Remember, I just want to change the value in Node1

Vino's solution does what you want. :slight_smile:

sed -e "/<Node1>/,/<\/Node1>/{
s_<Usage>false</Usage>_<Usage>true</Usage>_
}" file.old > file.new

You could drop the {} as well.

sed -e "/<Node1>/,/<\/Node1>/s_<Usage>false</Usage>_<Usage>true</Usage>_" file.old > file.new

Thanks one more question
When I use file.old >file.new I get a new file
but I want the results to be interpreted in file.net itself
I can copy this file.new to file.old but file is very big and copying would be a performance issue
Please help