Replace string inside block

Hi,
I have file with a lot of blocks like below:

 <a
   id="LISTENER_E"
   xlink:href=""
   transform="matrix(0.62637352,0,0,0.33836976,-278.11964,466.9526)">
   <image
   id="LISTENER_E.image"
   xlink:href="/images/Mobile/Icons/Catalog_Grey_4.png"
   height="65"
   width="65"
   y="502.32147"
   x="1087.6489" />
</a>

I have variables with name like id : LISTENER_E=Red

What I need:
According to variable name, replace "Grey" with variable value  into corresponding block
and do it without tmp files (like sed -i)
IKeystoneAsked:
Who is Participating?
 
simon3270Connect With a Mentor Commented:
I'm not sure I quite understand.

Do you have a series of varables in some other location (e.g. in another file) such as:
  LISTENER_E=Red
  LISTENER_K=Blue
and so on, and if the "id=" line has LISTENER_E you want to replace "Grey" on the xlink line with "Red", and if "id=" has LISTENER_K you want to replace "Grey" with "Blue"?

Will the layout always be as you have shown, with each item on a separate line?

Are there "<a" entries in the file which *don't* have an "id=xxx" line and which don't need the "Grey" bit to be repaced?

By the way, "sed -i" uses temporary files - it's just that it hides that from the user.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.