Sponsored Content
Top Forums Shell Programming and Scripting Replacing multiple lines in file from another file Post 302527659 by techneel on Saturday 4th of June 2011 06:49:15 AM
Old 06-04-2011
Java Replacing multiple lines in file from another file

Hi All,
I'm trying to parse a XML file and replace few lines of file with text present in another file. But only issue is I need to replace only those lines from XML which are preceeding the JOBNAME =*RRN*
For ex test.xml(content of XML file in which I want to replace lines is )
Code:
<JOB
.
.
.
JOBNAME="JD901_001__CTM_APPLICATION__PRD1Q"
.
.
>
<ON CODE="*" STMT="*" >
 <DOSYSOUT PAR="%%USREP.%%JOBNAME._%%RUNCOUNT..log" OPTION="Copy" />
    </ON>
    <ON CODE="COMPSTAT&lt;03" STMT="*" >
     <DO ACTION="OK" />
    </ON>
 <ON CODE="NOTOK" STMT="*" >
     <DOSHOUT DEST="ECS" MESSAGE="ERROR ON JOB %%JOBNAME" URGENCY="R" />
    </ON>
</JOB>
<JOB
.
.
JOBNAME="JD901_001__RRN_APPLICATION__PRD1Q"
.
.
>
    <ON CODE="*" STMT="*" >
     <DOSYSOUT PAR="%%USREP.%%JOBNAME._%%RUNCOUNT..log" OPTION="Copy" />
    </ON>
    <ON CODE="NOTOK" STMT="*" >
     <DOSHOUT DEST="ECS" MESSAGE="ERROR ON JOB %%JOBNAME" URGENCY="R" />
    </ON>
</JOB>

Now I want to replace only lines starting from <ON CODE="*" STMT="*" >
to </JOB> only where I could find
JOBNAME="JD901_001__RRN_APPLICATION__PRD1Q".

Replace.txt ( File containing the text I want to replace it with)
Code:
 <ON CODE="*" STMT="*" >
     <DOSYSOUT PAR="%%USREP.%%JOBNAME._%%RUNCOUNT..log" OPTION="Copy" />
     <DO ACTION="RERUN" />
    </ON>
    <ON CODE="*" STMT="*" >
     <DO ACTION="OK" />
    </ON>
    <ON CODE="NOTOK" STMT="*" >
     <DOSHOUT DEST="ECS" MESSAGE="ERROR ON JOB %%JOBNAME" URGENCY="U" />
    </ON>

I used grep to serach all the occurances of RRN jobs
Code:
grep -n 'JOBNAME=*.*RRN*' text.xm

l and using line numbers I tried to search in XML to replace the lines, but its not working.

Can somebody please help me with this.

Thanks

Last edited by Franklin52; 06-04-2011 at 09:14 AM.. Reason: Please use code tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

replacing multiple lines

i have a file : sample1.txt OBJECT="POINT" ACTION="REDEFINE" POINT_NAME="ABCD001G " GHYT_POPRIORITY_1="1" GHYT_POPRIORITY_2="1" GHYT_POPRIORITY_3="1" GHYT_POPRIORITY_4="1" GHYT_POPRIORITY_USER="1" HIGH_ALARM_PRIORITY_1="1" HIGH_ALARM_PRIORITY_2="1" HIGH_ALARM_PRIORITY_3="1" ... (1 Reply)
Discussion started by: ajnabi
1 Replies

2. UNIX for Advanced & Expert Users

replacing first line or lines in a file

hey guys, how do i replace only a line within a file without messing up the rest of the contents of the file? see, if possible can you guys give me a straight forward way to do this. i dont want a complex command. what i mean is i know i can accomplish this by using sed, well, i think i can,... (3 Replies)
Discussion started by: Terrible
3 Replies

3. Shell Programming and Scripting

replacing specific lines in a file

Hi there I have a file which has the lines # Serial number for hostid EXP_SERIAL_="" These lines could be anywhere in the file as far as line numbers go, I would like replace these two lines with # Serial number for hostid $var1 EXP_SERIAL_$var1="$var2" Is there a quick and simple... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

4. Shell Programming and Scripting

Replacing contents in a file from multiple programmes

Hi All, I have a query on Perl. I have a text file which has 3 lines, i want to only replace the first line with my replaced text and keep the rest of the text. FOr eg Before change --> echo:a:pending echo:b:pending echo:c:pending After change ---> echo:a:done echo:b:pending... (1 Reply)
Discussion started by: tosatesh
1 Replies

5. Shell Programming and Scripting

Replacing Block of lines in a text file

Dear All, Regards of the Day. I have a text file with some functions: Function1 { parameter 1 parameter 2 parameter 3 } end Function2 { parameter 1 parameter 2 parameter 3 } (1 Reply)
Discussion started by: ashisharora
1 Replies

6. Shell Programming and Scripting

Replacing a single line with multiple lines in a file

Hi Am confused with the usage of "sed" command I want to replace a single line with multiple lines of a file.. eg., A file has Hi, How are you? I need to replace as Am fine What are You doing? I used the script as string1="Hi, How are you?" echo "$string1 is the value"... (4 Replies)
Discussion started by: Priya Amaresh
4 Replies

7. Shell Programming and Scripting

Replacing multiple spaces in flat file

Greetings all I have a delimited text file (the delimiter is ';') where certain fields consist of many blanks e.g. ; ; and ; ; Before I separate the data I need to eliminate these blanks altogether. I tried the sed command using the following syntax: sed -i 's/; *;/;;/g' <filename> ... (15 Replies)
Discussion started by: S. BASU
15 Replies

8. Shell Programming and Scripting

Matching and Replacing file lines starting with $

Here is the task that I was presented with: I am dealing with about a 10,000 line input deck file for an analysis. About 10 separate blocks of around 25 lines of code each need to be updated in the input deck. The input deck (deckToChange in the code below) comes with 2 separate files. File 1... (5 Replies)
Discussion started by: tiktak292
5 Replies

9. Shell Programming and Scripting

Removing multiple lines from input file, if multiple lines match a pattern.

GM, I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed. I am assuming that sed, awk or even perl could do what I need. I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies

10. Shell Programming and Scripting

Replacing match lines from one file with another file

Please help me in this scenario i have two text files as below file1.txt record_1 conversion of a file; code change; data types; lenght; end; record_2 field name; string; new fileline; end; record_3 (7 Replies)
Discussion started by: velraj9
7 Replies
XML::Grove::Subst(3)					User Contributed Perl Documentation				      XML::Grove::Subst(3)

NAME
XML::Grove::Subst - substitute values into a template SYNOPSIS
use XML::Grove::Subst; # Using subst method on XML::Grove::Document or XML::Grove::Element: $new_grove = $source_grove->subst( ARGS ); $new_grove = $source_grove->subst_hash( ARG ); # Using an XML::Grove::Subst instance: $subster = XML::Grove::Subst->new(); $new_grove = $subster->subst( $source_grove, ARGS ); $new_grove = $subster->subst_hash( $source_grove, ARG ); DESCRIPTION
"XML::Grove::Subst" implements XML templates. "XML::Grove::Subst" traverses through a source grove replacing all elements with names `"SUB:XXX"' or `"SUB:key"' with their corresponding values from ARGS (a list) or ARG (a hash), repsectively. METHODS
$grove_obj->subst( ARGS ) =item $subster->subst( $grove_obj, ARGS ) Search for `"SUB:XXX"' elements, where XXX is an array index, and replace the element with the value from ARGS, a list of values. The return value is a new grove with the substitutions applied. $grove_obj->subst_hash( ARG ) =item $subster->subst_hash( $grove_obj, ARG ) Search for `"SUB:key"' elements and replace the element with the value from ARG, a hash of values. The hash key is taken from the `"key"' attribute of the `"SUB:key"' element, for example, `"<SUB:key key='foo'>"'. The return value is a new grove with the substitu- tions applied. EXAMPLE
The following template, in a file `"template.xml"', could be used for a simple parts database conversion to HTML: <html> <head> <title><SUB:key key='Name'></title> </head> <body> <h1><SUB:key key='Name'></title> <p>Information for part number <SUB:key key='Number'>:</p> <SUB:key key='Description'> </body> </html> To use this template you would first parse it and convert it to a grove, and then use `"subst_hash()"' every time you needed a new page: use XML::Parser::PerlSAX; use XML::Grove; use XML::Grove::Builder; use XML::Grove::Subst; use XML::Grove::PerlSAX; use XML::Handler::XMLWriter; # Load the template $b = XML::Grove::Builder->new(); $p = XML::Parser::PerlSAX->new( Handler = $b ); $source_grove = $p->parse( Source => { SystemId => 'template.xml' } ); # Apply the substitutions $new_grove = $source_grove->subst_hash( { Name => 'Acme DCX-2000 Filter', Number => 'N4728', Description => 'The Best' } ); # Write the new grove to standard output $w = XML::Handler::XMLWriter->new(); $wp = XML::Grove::PerlSAX->new( Handler => $w ); $wp->parse( Source => { Grove => $new_grove } ); AUTHOR
Ken MacLeod, ken@bitsko.slc.ut.us SEE ALSO
perl(1), XML::Grove(3) Extensible Markup Language (XML) <http://www.w3c.org/XML> perl v5.8.0 1999-08-25 XML::Grove::Subst(3)
All times are GMT -4. The time now is 04:12 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy