I want replace string <enclosure>&#x22;</enclosure> with <enclosure>&#x5e;</enclosure> in xml


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting I want replace string <enclosure>&#x22;</enclosure> with <enclosure>&#x5e;</enclosure> in xml
# 1  
Old 09-08-2018
I want replace string <enclosure>&#x22;</enclosure> with <enclosure>&#x5e;</enclosure> in xml

I have xml files with with extension .ktr in subfolders
i want to replace the string
Code:
<enclosure>&#x22;</enclosure>

with
Code:
<enclosure>&#x5e;</enclosure>

i have written logic but it is not working correctly
Code:
sed -i '' 's#<enclosure>&\#x22;</enclosure>#<enclosure>&\#x5e;</enclosure>#g' *.ktr

out put coming like this
Code:
<enclosure><enclosure>&#x22;</enclosure>#x5e;</enclosure>

but i want like this
Code:
<enclosure>#x5e;</enclosure>


Last edited by Scrutinizer; 09-08-2018 at 05:13 AM.. Reason: Code tags
# 2  
Old 09-08-2018
You need to escape the ampersand on the RHS:
Code:
's#<enclosure>&\#x22;</enclosure>#<enclosure>\&\#x5e;</enclosure>#g'

Because it has a special meaning in the s command within sed.




--
Note:
If you choose a different delimiter you do not need to escape the hashes, for example:
Code:
's|<enclosure>&#x22;</enclosure>|<enclosure>\&#x5e;</enclosure>|g'

One could also use back references ( \1 and \2 ) in this case:
Code:
's|\(<enclosure>&#\)x22\(;</enclosure>\)|\1x5e\2|g'

Then you do not need to escape the ampersand, because it is not there
One could even use the backreference on the LHS:
Code:
's|<\(enclosure>\)&#x22;<\1|<\1\&#x5e;<\1|g'

But IMO that does not look very readable..

Last edited by Scrutinizer; 09-08-2018 at 06:49 AM..
# 3  
Old 09-09-2018
if i use this
Code:
sed i '' 's#<enclosure>&\#x22;</enclosure>#<enclosure>&\#x5e;</enclosure>#g' *.ktr

getting this error
Code:
sed: 1: "i": command i expects \ followed by text
ed i '' 's|<enclosure>&#x22;</enclosure>|<enclosure>&\#x5e;</enclosure>|g' *.ktr

also getting same error

Last edited by reddy12; 09-10-2018 at 01:07 AM..
# 4  
Old 09-09-2018
Quote:
Originally Posted by reddy12
if i use this
Code:
sed i '' 's#<enclosure>&\#x22;</enclosure>#<enclosure>\^</enclosure>#g' *.ktr

getting this error
Code:
sed: 1: "i": command i expects \ followed by text
ed i '' 's|<enclosure>&#x22;</enclosure>|<enclosure>\^</enclosure>|g' *.ktr

also getting same error
Substitute the highlighted for just -i
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. AIX

enclosure2 SRN 80210 SSA Enclosure

Hi all, How to view more info about this error message that i am keep on getting. Tried "errpt -a" but the output is huge. Thanks in advance! (2 Replies)
Discussion started by: lramsb4u
2 Replies

2. AIX

Find serial number of storage enclosure?

System: PowerPC_POWER6 OS: AIX 5.x I was told that a disk (hdisk 10) is bad. How can I find "the serial # of the storage enclosure" from command line? How do I find which disk is on which enclosure? Thank you in advance! :) ---------- Post updated at 12:33 PM ---------- Previous update... (2 Replies)
Discussion started by: aixlover
2 Replies

3. Shell Programming and Scripting

replace & with &amp; xml file

Hello All I have a xml file with many sets of records like this <mytag>mydata</mytag> <tag2>data&</tag2> also same file can be like this <mytag>mydata</mytag> <tag2>data&</tag2> <tag3>data2&amp;data3</tag3> Now i can grep & and replace with &amp; for whole file but it will replace all... (4 Replies)
Discussion started by: lokaish23
4 Replies

4. Shell Programming and Scripting

PHP read large string & split in multidimensional arrays & assign fieldnames & write into MYSQL

Hi, I hope the title does not scare people to look into this thread but it describes roughly what I'm trying to do. I need a solution in PHP. I'm a programming beginner, so it might be that the approach to solve this, might be easier to solve with an other approach of someone else, so if you... (0 Replies)
Discussion started by: lowmaster
0 Replies

5. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

6. Filesystems, Disks and Memory

Building a NAS enclosure

Can anyone guide me on how to build my own NAS ? I have an old laptop that I want to convert into a NAS, but not use the laptop as such as an NAS because it has some problems. I would like to build a NAS like the ones available in market. I do not want to buy a NAS enclosure , but would like to... (3 Replies)
Discussion started by: vpraveen84
3 Replies
Login or Register to Ask a Question