Sponsored Content
Top Forums Shell Programming and Scripting Help with find and replace in XML Post 302379750 by ghostdog74 on Saturday 12th of December 2009 01:55:12 AM
Old 12-12-2009
bash. 4.0 with associative arrays

Code:
# bash 4.0
declare -A dict
while read -r line
do
    case "$line" in
        "<Name>"*|"<Age>"*)
            tag=${line%%>*}
            tag=${tag#*<}
            val=${line#*>}
            val=${val%%<*}
            dict["$tag"]="$val"
            ;;
    esac
done <"file"
while read -r line
do
    case "$line" in
       "<Name>"*|"<Age>"*)
        tag=${line%%>*}
        tag=${tag#*<}
        line="<$tag>${dict["$tag"]}</$tag>"
    esac
    echo $line
done <"file2"

you could do the same with awk, otherwise, ideally you should get a good XML parser.

Last edited by ghostdog74; 12-12-2009 at 03:31 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

find and replace in XML

Hi I need one clarication.. I have an xml having many entries like this.. <Cust_Name>Tom Cruise</Cust_Name> I want to rename this to <Cust_Name>TEST</Cust_Name> Pls let me know how to do it.. I was trying some basic commands like grep 'Cust_Name' * | tr '>' ',' | tr '<' ... (2 Replies)
Discussion started by: wip_vasikaran
2 Replies

2. UNIX for Dummies Questions & Answers

replace %20 in xml file

Hi, I'd like to use sed in order to replace %20 and other "special" characters that are represented with % and some number combination in xml file. Typical line looks like this: /Users/imac1/Music/iTunes/iTunes... (6 Replies)
Discussion started by: andrejm
6 Replies

3. Shell Programming and Scripting

Find/Replace in XML file

I am not sure how to approach this find/replace using a shell script. Any help or guidance appreciated. I want to find this: <objects/> <thumb>thumb_0001.jpg</thumb> <preview>preview_0001.jpg</preview> And replace with something like this: <objects>... (1 Reply)
Discussion started by: jimraynor
1 Replies

4. Shell Programming and Scripting

Find Node and replace line(s) preceding in xml file

Hello, I have an xml file whose contacts are like below: <Node>Apple <B>Value1</B> <B>Value2</B> <B>Value3</B> </Node> <Node>Mango <B>Value1</B> <B>Value2</B> <B>Value3</B> </Node> <Node>Apple <B>Value1</B> <B>Value2</B> <B>Value3</B> </Node> <Node>Bannana (3 Replies)
Discussion started by: umarsatti
3 Replies

5. Linux

Linux command to find and replace occurance of more than two equal sign with "==" from XML file.

Please help me, wasted hrs:wall:, to find this soulution:- I need a command that will work on file (xml) and replace multiple occurrence (more than 2 times) Examples 1. '===' 2. '====' 3. '=======' should be replaced by just '==' Note :- single character should be replaced. (=... (13 Replies)
Discussion started by: RedRocks!!
13 Replies

6. Shell Programming and Scripting

Find and replace from an XML

Input-xml <weblogic-web-app> <session-descriptor> <session-param> <param-name>SysName</param-name> <param-value>smilyface</param-value> </session-param> <session-param> <param-name>InternetProtocol</param-name> <param-value>xxxxxxxx</param-value> ... (2 Replies)
Discussion started by: linuxadmin
2 Replies

7. Shell Programming and Scripting

Find and replace in xml

Hi All, My XML file looks like below: <logEvent xsi:type="logservice:LogEvent" timestamp="1394713811052" severity="3" messageCode="TM_6228" message="Writing session output to log file ." user="" stacktrace="" service="" serviceType="IS" clientNode="dev" pid="712" threadName="DIRECTOR"... (3 Replies)
Discussion started by: galaxy_rocky
3 Replies

8. Shell Programming and Scripting

Need to replace XML TAG

As per the requirement I need to replace XML tag with old to new on one of the XML file. Old<com : DEM>PHI</com : DEM> New<com : DEM>PHM</com : DEM> Please someone provide the sed command to replace above mentioned old XML tag with new XML tag (2 Replies)
Discussion started by: siva83
2 Replies

9. Solaris

XML value compare and replace

I need a way to to check if a value in a file that has this XML format is less than or equal to current system date/time. if it is I need to override it with a future date/time: Here is the data sample: <?xml version="1.0"... (1 Reply)
Discussion started by: mrn6430
1 Replies

10. UNIX for Beginners Questions & Answers

Find replace text in xml file on the fly

Dear Unix guru, I have a .XML file which is being used to load data to oracle. This file comes on unix box and one of the tag in xml is oracle key word. I want to find that tag and replace with new tag on the fly For example I will get one of the tag in xml is as below <from>Test Test... (12 Replies)
Discussion started by: guddu_12
12 Replies
tag(3tcl)                                                                                                                                tag(3tcl)

NAME
tag - Manipulate tagged files SYNOPSIS
tag option ?arg arg ...? DESCRIPTION
The tag procedure provides a number of options for manipulating tagged files. COMMANDS
tag readfile filename Reads the file with the given filename and returns a list where each list element is a tag record, which is represented by a list of label-value pairs, or label-value-endlabel triples. The tag header is the first element returned. tag writefile filename list Takes a list in the format used internally in tcl programs for tagged data and writes it as a tagged file. tag extract list tests Takes a list in tagged format, and a list of conditions, and returns a new list in tagged format which contains those tag records which match the conditions. The tests is a list of test items, each of which is a list of the form { labelname condition matchvalue } The conditions are == String equals != String not equal <= Less than or equal -in Is the test value a member of the list given as the matchvalue -contains Does the match value contain the test value as a case insensitive substring. -earlier Date earlier -later Date later - dates are in ISO format (yyyy-mm-dd [hh:mm:ss]). -exists Does the label exist in this record. BUGS
tag readfile reads the whole file into memory before turning it into a list. Should be more memory efficient. The -earlier and -later comparisons require TCL8.3 AUTHOR
John Lines (john@paladin.demon.co.uk) July 3, 2000 tag(3tcl)
All times are GMT -4. The time now is 01:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy