sed substition within XML tag


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Question sed substition within XML tag

Hi all,

I basically want to remove certain characters from within a certain XML tag:

From:
Code:
<mytagone>hello 1-2-3 world</mytagone>
<mytagtwo>hello 1-2-3 world</mytagtwo>

To:
Code:
<mytagone>hello 1 2 3 world</mytagone>
<mytagtwo>hello 1-2-3 world</mytagtwo>

Is this possible using sed and regular expressions?

Many thanks in advance,

Mark

Last edited by Scrutinizer; 03-03-2014 at 03:29 PM.. Reason: code tags
# 2  
Hello,

Following may help you in same.


Code:
awk 'NR==1 {gsub(/\-/," ")} 1' file_name


Output will be as follows.

Code:
<mytagone>hello 1 2 3 world</mytagone>
<mytagtwo>hello 1-2-3 world</mytagtwo>


EDIT: one more solution for same.

Code:
awk -va=1 'a==1 {gsub(/\-/," "); a++} 1' file_name

Output will be as follows.

Code:
<mytagone>hello 1 2 3 world</mytagone>
<mytagtwo>hello 1-2-3 world</mytagtwo>



EDIT: Adding one more solution with sed .

Code:
sed '1s/\(.*\)\(\-\)\(.*\)\(\-\)\(.*\)/\1 \3 \5/'  file_name


Ouptut will be as follows.

Code:
<mytagone>hello 1 2 3 world</mytagone>
<mytagtwo>hello 1-2-3 world</mytagtwo>


Thanks,
R. Singh

Last edited by RavinderSingh13; 03-03-2014 at 11:35 AM.. Reason: Added more solution
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Code:
sed '/<mytagone>/s/-/ /g' file

This User Gave Thanks to Subbeh For This Post:
# 4  
OR

Code:
$ awk '!f && $0 ~ "<"tag".*>"{f=gsub(/-/," ")}f' tag='mytag' file

This User Gave Thanks to Akshay Hegde For This Post:
# 5  
Thanks to everyone for their responses.

Code:
sed '/<mytagone>/s/-/ /g' file

... is sufficient for my requirement.

But I wonder is there a sed solution to:

From:
Code:
<mytag_one>hello 1_2_3 world</mytag_one>
<mytag_two>hello 1_2_3 world</mytag_two>

To:
Code:
<mytag_one>hello 1 2 3 world</mytag_one>
<mytag_two>hello 1_2_3 world</mytag_two>

Mark

Last edited by Scrutinizer; 03-03-2014 at 03:28 PM..
# 6  
an awk:
Code:
awk '/<mytag_one>/ {gsub("_", " ", $3); $0="<" $2 ">" $3 "<" $4 ">"} 1' FS="[<>]" infile

# 7  
Try:
Code:
sed -e :a -e '/mytag_one/s/\(>.*\)_\(.*<\)/\1 \2/; ta' file

or
Code:
sed -e :a -e '/mytag_one/s/\(>[^_<]*\)_/\1 /; ta' file


Last edited by Scrutinizer; 03-03-2014 at 04:58 PM..
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #810
Difficulty: Medium
The CSS3 RGB Decimal Code for Turquoise is 64,224,218.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grepping multiple XML tag results from XML file.

I want to write a one line script that outputs the result of multiple xml tags from a XML file. For example I have a XML file which has below XML tags in the file: <EMAIL>***</EMAIL> <CUSTOMER_ID>****</CUSTOMER_ID> <BRANDID>***</BRANDID> Now I want to grep the values of all these specified... (1 Reply)
Discussion started by: shubh752
1 Replies

2. Shell Programming and Scripting

Moving XML tag/contents after specific XML tag within same file

Hi Forum. I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script. Any feedback will be greatly appreciated. ... (19 Replies)
Discussion started by: pchang
19 Replies

3. Shell Programming and Scripting

sed search and replace after xml tag

Hi All, I'm new to sed. In following XML file <interface type='direct'> <mac address='52:54:00:86:ce:f6'/> <source dev='eno1' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> ... (8 Replies)
Discussion started by: varunrapelly
8 Replies

4. Shell Programming and Scripting

To search for a particular tag in xml and collate all similar tag values and display them count

I want to basically do the below thing. Suppose there is a tag called object1. I want to display an output for all similar tag values under heading of Object 1 and the count of the xmls. Please help File: <xml><object1>house</object1><object2>child</object2>... (9 Replies)
Discussion started by: srkmish
9 Replies

5. Shell Programming and Scripting

XML Parse between to tag with upper tag

Hi Guys Here is my Input : <?xml version="1.0" encoding="UTF-8"?> <xn:MeContext id="01736"> <xn:VsDataContainer id="01736"> <xn:attributes> <xn:vsDataType>vsDataMeContext</xn:vsDataType> ... (12 Replies)
Discussion started by: pareshkp
12 Replies

6. Shell Programming and Scripting

How to add the multiple lines of xml tags before a particular xml tag in a file

Hi All, I'm stuck with adding multiple lines(irrespective of line number) to a file before a particular xml tag. Please help me. <A>testing_Location</A> <value>LA</value> <zone>US</zone> <B>Region</B> <value>Russia</value> <zone>Washington</zone> <C>Country</C>... (0 Replies)
Discussion started by: mjavalkar
0 Replies

7. Shell Programming and Scripting

How to retrieve the value from XML tag whose end tag is in next line

Hi All, Find the following code: <Universal>D38x82j1JJ </Universal> I want to retrieve the value of <Universal> tag as below: Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies

8. UNIX for Dummies Questions & Answers

Help with variable substition in sed

Hi, I'm a bit stuck trying to get my sed syntax quite right for what I'm trying to do. I have a list of directories in a file and am trying to remove some of them using sed. I can do it if I specify the directory I want to remove in the sed command and escape the "/"s like so: say I... (2 Replies)
Discussion started by: derndingle
2 Replies

9. Shell Programming and Scripting

XML tag replacement from different XML file

We have 2 XML file 1. ORIGINAL.xml file and 2. ATTRIBUTE.xml files, In the ORIGINAL.xml we need some modification as <resourceCode>431048</resourceCode>under <item type="Manufactured"> tag - we need to grab the 431048 value from tag and pass it to database table in unix shell script to find the... (0 Replies)
Discussion started by: balrajg
0 Replies

10. Shell Programming and Scripting

Sed command to clean xml tag

Hi, Can someone help me come up with a generic sed command to clean a tag off its attributes? For eg. Input String - <tag attrib=new>This String</tag> should undergo a sed transformation to get Output String - <tag >This String</tag> This works - echo "<tag attrib=new>This</tag>" |... (3 Replies)
Discussion started by: iamwha1am
3 Replies

Featured Tech Videos