sed xml file script help


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed xml file script help
# 1  
sed xml file script help

I have about 1200 xml files I need to deploy from a 6.4 XML version to 9.0 version of a DTD. So I need a sed command to do lots of of replacements of random variables.

The keyword line is <AUTOEDIT EXP then is will have a variable followed by an equals sign. From that point on I need to break the line again.

Example
Code:
<AUTOEDIT EXP="%%S_APP_HOME=APP_HOME=%%G_APP_HOME_PREFIX.pmt/apb"/>  

SED to

<VARIABLE NAME="%%S_APP_HOME" VALUE="APP_HOME=%%G_APP_HOME_PREFIX.pmt/apb" />

I know the last part but I'm stuck on how to handle the unknown variable name part. So its carried over on the replace.

Code:
#!/bin/ksh
inXML=$1
outXML=${inXML:?}.v9.xml

sed -e \
"s/AUTOEDIT EXP=\"[a-z]*[0-9]*=/AUTOEDIT EXP=\"[a-z]*[0-9]*\" VALUE=\"/g" -e \
"s/AUTOEDIT EXP=/VARIABLE NAME=/g" < ${inXML} > ${outXML}

# 2  
\1 holds the value of the first capture group on the lhs of a substitution

google sed capture groups for many detailed discussions
This User Gave Thanks to Skrynesaver For This Post:
# 3  
Thanks, that helped a lot with that issue.

I also messed up the first grab though
Code:
AUTOEDIT EXP=\"[a-z]*[0-9]*=

Is not finding
Code:
AUTOEDIT EXP="%%S_APP_HOME=

For the random variable names what is the correct syntax?
# 4  
Try
Code:
sed '/AUTOEDIT EXP/{s//VARIABLE NAME/; s/=/" VALUE="/2}' file4
<VARIABLE NAME="%%S_APP_HOME" VALUE="APP_HOME=%%G_APP_HOME_PREFIX.pmt/apb"/>


[a-z][0-9] won't match "%", "_", nor any upper case char.
This User Gave Thanks to RudiC For This Post:
# 5  
I'm running on AIX, but get an error message "cannot be parsed"

Code:
AIX an05074 1 6 00F61FD34C00
$ sed '/AUTOEDIT EXP/{s//VARIABLE NAME/; s/=/" VALUE="/2}' test.xml
sed: 0602-404 Function /AUTOEDIT EXP/{s//VARIABLE NAME/; s/=/" VALUE="/2} cannot be parsed.

---------- Post updated at 05:43 PM ---------- Previous update was at 05:28 PM ----------

Thank you both, got it working.

Code:
#!/bin/ksh
inXML=$1
outXML=${inXML:?}.v9.xml

sed -e \
"s/AUTOEDIT EXP/VARIABLE NAME/g" -e \
"/VARIABLE NAME/s/=/\" VALUE=\"/2" < ${inXML} > ${outXML}

# 6  
Please be aware that this will substitute EVERY occurrence of VARIABLE NAME in your file regardless of AUTOEDIT found in same line or not.
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 #851
Difficulty: Medium
Angular is a TypeScript-based open-source web application framework.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed - extract text from xml file

hi, please help, i have an xml file, e.g: ... <tag> test text asdas="${abc}" xvxvbs:asdas${222}sdad asasa="${aa_bb_22}" </tag> ... i want to extract all "${...}", e.g: ${abc} ${222} ${aa_bb_22} thank you. (2 Replies)
Discussion started by: gioni
2 Replies

2. Shell Programming and Scripting

XML- Sed || Awk Bash script... Help!

Hi ! I'm working into my first bash script to make some xml modification and it's going to make me crazy lol .. so I decide to try into this forum to take some ideas from people that really know about this! This is my situation I've and xml file with a lots of positional values with another tags... (9 Replies)
Discussion started by: juampal
9 Replies

3. Shell Programming and Scripting

Help in parsing xml file (sed/nawk)

I have a large xml file as shown below: <input> <blah> <blah> <atr="blah blah value = ""> <blah> <blah> </input> ..2nd chunk... ..3rd chunk... ...4th chunk... All lines between <input> and </input> is one 'order' and this 'order' is repeated... (14 Replies)
Discussion started by: shekhar2010us
14 Replies

4. Shell Programming and Scripting

How to get value from xml node using sed/perl/script?

hello, new to this forum. but i have a requirement to extract the value from multiple xml node and print out the values to new file with comma seperated. would like to know how this would be done using either sed/perl or some unix script. an example would be tremendous... sample input file:... (2 Replies)
Discussion started by: davidsouk
2 Replies

5. Shell Programming and Scripting

sed parse small xml file

I have a tmp.xml file like: <?xml version="1.0" encoding="UTF-8"?> <Response> <Ip>193.143.121.198</Ip> <Status>OK</Status> <CountryCode>PL</CountryCode> <CountryName>Poland</CountryName> <RegionCode>82</RegionCode> <RegionName>Pomorskie</RegionName> <City>Gdansk</City> ... (9 Replies)
Discussion started by: unclecameron
9 Replies

6. Shell Programming and Scripting

XML file modifications using sed

Hi, During an installation process in a bash script I need to do 2 things with 2 XML files. Does the use of sed affect in any way the XML file ? 1.Add to a section in <ServerListeners> section <ServerListener> <BaseClass>myapp.module.WowConfigurator</BaseClass> </ServerListener> The... (2 Replies)
Discussion started by: potro
2 Replies

7. Shell Programming and Scripting

Remove sections of a xml file with sed

I've been trying to remove some lines of a xml file that looks like this: <parent> <child>name1</child> <lots_of_other tags></lots_of_other_tags> </parent> <parent> <child>name2</child> <lots_of_other tags></lots_of_other_tags> </parent> <parent> <child>name3</child> ... (5 Replies)
Discussion started by: viniciusandre
5 Replies

8. Shell Programming and Scripting

How to remove xml namespace from xml file using shell script?

I have an xml file: <AutoData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Table1> <Data1 10 </Data1> <Data2 20 </Data2> <Data3 40 </Data3> <Table1> </AutoData> and I have to remove the portion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" only. I tried using sed... (10 Replies)
Discussion started by: Gary1978
10 Replies

9. UNIX for Advanced & Expert Users

Parsing xml file using Sed

Hi All, I have this(.xml) file as: <!-- define your instance here --> <instance name='ins_C2Londondev' user='' group='' fullname='B2%20-%20London%20(dev)' > <property> </property> </instance> I want output as: <!-- define your instance here --> <instance... (3 Replies)
Discussion started by: kapilkinha
3 Replies

10. Shell Programming and Scripting

extracting XML file using sed

Hello folks I want to extract data between certain tag in XML file using 'sed' <xml> ......... .......... <one>XXXXXXXXXXXXXXXXXXXX</one> ...... Anyone ?Thank you (7 Replies)
Discussion started by: pujansrt
7 Replies

Featured Tech Videos