sed - issue in replacing >


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed - issue in replacing >
# 15  
Old 03-08-2015
thanks , let me try this one.
# 16  
Old 03-08-2015
Quote:
Originally Posted by ajmani
. . .
Code:
sed '/"Output file name"/s basename <samplefinaldata>' result2

. . .
As I said - using spaces as delimiters is not that easy. You don't have a closing delimiter in above. And, make sure the <samplefinaldata> doesn't contain spaces.
This User Gave Thanks to RudiC For This Post:
# 17  
Old 03-08-2015
thanks for pointing out the missing single quote, I tried this now
Code:
 $ sed '/."Output filename"/s basename <sampledatafinal>' result2

but still getting error sed: command garbled: /."Output filename"/s basename <sampledatafinal>
thanks..
# 18  
Old 03-08-2015
Quote:
Originally Posted by ajmani
thanks for pointing out the missing single quote, I tried this now
Code:
 $ sed '/."Output filename"/s basename <sampledatafinal>' result2

but still getting error sed: command garbled: /."Output filename"/s basename <sampledatafinal>
thanks..
What the above command seems to be trying to do is to select lines that contain the string "Output filename" that does NOT appear at the beginning of a line and on those selected lines change the first occurrence of the string basename with the string <sampledatafinal> with flags specified by the string result2, but most of those flags are invalid for a substitute command.

You are using a space as the field delimiter in the substitute command which should be of the form:
Code:
sdelimiterSearchPatterndelimiterReplacementStringdelimiterflags

where delimiter is a single character other than backslash and newline. Since you are using a space character as your delimiter, the space between the closing single quote and the filename is being used as a delimiter and the filename is being treated as flags; not as the name of a file to be processed.

But, more importantly, your description of what you're trying to do keeps changing and there is confusion about what you are really trying to accomplish. First you wanted to change a directory name (enclosed in double quotes) to a string stored in a variable (dropping the quotes). Then you say you want to strip off all but the final component of a pathname, but the pathnames you have shown us include trailing slash characters. So, by definition, the final component name is .. (Why would a regular filename like /abc\khi/amv.txt/ or /abc\khi/amv.csv/ end with a /?)

Please show us:
  1. a sample input file that contains the all of the transformations you're trying to make,
  2. the code that sets the variable want to replace directory names found in your sample input file, and
  3. a sample output file that shows the exact results you're trying to produce from the above specified inputs.
This User Gave Thanks to Don Cragun For This Post:
# 19  
Old 03-09-2015
First and foremost thanks for looking into this .My requirement is to modify the following in an input file
1> change the directory in attribute Output file directory to a parameterized directory.
2> strip of any directory from the attribute output filename if the filename is prefixed with path , and just retain the filename along with extension
3> change the directory in attribute Log filename and keep the filename as is.
4> all of the above can be present multiple times in a file , and modification needs to be done for multiple files.

I was trying to achieve this step by step, hence you could have felt a change in requirement. I also realized that by mistake I have given a / in the filename , this is a mistake and there is no / after the filename. I apologize for the inconvenience /confusion caused by this.

my sample input data file looks like
Code:
<SESSION>
<SESSIONEXTENSION>
            <CONNECTIONREFERENCE CNXREFNAME ="Connection" CONNECTIONNAME ="" CONNECTIONNUMBER ="1" CONNECTIONSUBTYPE ="" CONNECTIONTYPE ="" VARIABLE =""/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="\data\targetfiledirectory\"/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="\thirdparty\targetfiledirectory\"/>
            <ATTRIBUTE NAME ="Output filename" VALUE ="\data\targetfiledirectory\\target1.csv"/>
            <ATTRIBUTE NAME ="Log filename" VALUE ="/data/logfiledirectory\log1.log"/>
            <ATTRIBUTE NAME ="Command" VALUE =""/>
            <ATTRIBUTE NAME ="File Reader Truncate String Null" VALUE ="NO"/>
            <ATTRIBUTE NAME ="Codepage Parameter" VALUE =""/>
        </SESSIONEXTENSION>
<SESSIONEXTENSION>
            <CONNECTIONREFERENCE CNXREFNAME ="Connection" CONNECTIONNAME ="" CONNECTIONNUMBER ="1" CONNECTIONSUBTYPE ="" CONNECTIONTYPE ="" VARIABLE =""/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="/data/targetfiledirectory"/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="/$Thirdparty"/>
            <ATTRIBUTE NAME ="Output filename" VALUE ="/$Thirdparty\target2"/>
            <ATTRIBUTE NAME ="Log filename" VALUE ="/data/logfiledirectory\log2.log"/>
            <ATTRIBUTE NAME ="Command" VALUE =""/>
            <ATTRIBUTE NAME ="File Reader Truncate String Null" VALUE ="NO"/>
            <ATTRIBUTE NAME ="Codepage Parameter" VALUE =""/>
        </SESSIONEXTENSION>
</SESSION>

this is my desired output
Code:
<SESSION>
<SESSIONEXTENSION>
            <CONNECTIONREFERENCE CNXREFNAME ="Connection" CONNECTIONNAME ="" CONNECTIONNUMBER ="1" CONNECTIONSUBTYPE ="" CONNECTIONTYPE ="" VARIABLE =""/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="$Outputfiledirectory\folder1"/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="$Outputfiledirectory\folder1"/>
            <ATTRIBUTE NAME ="Output filename" VALUE ="target1.csv"/>
            <ATTRIBUTE NAME ="Log filename" VALUE ="$logfiledirectory\log1.log"/>
            <ATTRIBUTE NAME ="Command" VALUE =""/>
            <ATTRIBUTE NAME ="File Reader Truncate String Null" VALUE ="NO"/>
            <ATTRIBUTE NAME ="Codepage Parameter" VALUE =""/>
        </SESSIONEXTENSION>
<SESSIONEXTENSION>
            <CONNECTIONREFERENCE CNXREFNAME ="Connection" CONNECTIONNAME ="" CONNECTIONNUMBER ="1" CONNECTIONSUBTYPE ="" CONNECTIONTYPE ="" VARIABLE =""/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="$Outputfiledirectory\folder1"/>
            <ATTRIBUTE NAME ="Output file directory" VALUE ="$Outputfiledirectory\folder1"/>
            <ATTRIBUTE NAME ="Output filename" VALUE ="/$Thirdparty.target2"/>
            <ATTRIBUTE NAME ="Log filename" VALUE ="$logfiledirectory\log2.log"/>
            <ATTRIBUTE NAME ="Command" VALUE =""/>
            <ATTRIBUTE NAME ="File Reader Truncate String Null" VALUE ="NO"/>
            <ATTRIBUTE NAME ="Codepage Parameter" VALUE =""/>
        </SESSIONEXTENSION>
</SESSION>

thanks in advance.

Last edited by ajmani; 03-09-2015 at 11:45 PM.. Reason: correcting typo errors
# 20  
Old 03-09-2015
Sorry, I can't grasp what you desire. You seem to use path delimiters / and \ interchangeably in your samples?
Quote:
1> change the directory in attribute Output file directory to a parameterized directory.
What, then, is \folder1 in your desired output? Where does it come from?

Quote:
2> strip of any directory from the attribute output filename if the filename is prefixed with path , and just retain the filename along with extension
Code:
        <ATTRIBUTE NAME ="Output filename" VALUE ="target1.csv"/>
        <ATTRIBUTE NAME ="Output filename" VALUE ="/$Thirdparty.target2"/>

What, then, is .target2 in this case?
Quote:
3> change the directory in attribute Log filename and keep the filename as is.
Code:
            <ATTRIBUTE NAME ="Log filename" VALUE ="$logfiledire\log2.log"/>

Where does the .log come from in the second paragraph?
This User Gave Thanks to RudiC For This Post:
# 21  
Old 03-09-2015
Thanks RudiC for looking into this.

Please find the answers to the queries

1> the existing filepaths do have / and \ used interchangeably. I am not sure how the code referring to these paths is valid , but it is running well. however, now we want to standardize everything and use only \ in the paths.

2> we want to parameterize the path of output files partially. the dir structure is root\outputfiles\third_party . the folder1 that you see , is actually sub directory for one third party. though the third party will remain fixed for one file , but we don't want to create so many process variables (one for each third party)

3> the last 2 are typo errors
Quote:
<ATTRIBUTE NAME ="Output filename" VALUE ="target1.csv"/>
<ATTRIBUTE NAME ="Output filename" VALUE ="/$Thirdparty.target2"/>
should have been
Quote:
<ATTRIBUTE NAME ="Output filename" VALUE ="target1.csv"/>
<ATTRIBUTE NAME ="Output filename" VALUE ="/$Thirdparty\target2"/>
and output should be
Quote:
<ATTRIBUTE NAME ="Output filename" VALUE ="target1.csv"/>
<ATTRIBUTE NAME ="Output filename" VALUE ="target2"/>
and
Quote:
<ATTRIBUTE NAME ="Log filename" VALUE ="/data/logfiledirectory\log2.log"/>
should give output
Quote:
<ATTRIBUTE NAME ="Log filename" VALUE ="$logfiledire\log2.log"/>
. I have corrected this in my previous post as well. regret the inconvenience .

thanks again .

Last edited by ajmani; 03-09-2015 at 03:59 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Not replacing using sed

Hi all, I am trying to change the below word. but the changes is not reflecting in the new file sed -n 's/apple/orange/' filename ---------- Post updated at 12:51 AM ---------- Previous update was at 12:41 AM ---------- I tried this it works perl -pi.bak -e... (9 Replies)
Discussion started by: ramkumar15
9 Replies

2. Shell Programming and Scripting

sed not replacing

Data not replacing using sed,please check below. Replace_value=$$dbconn_target Search_value=$$dbcon_source   sed -e s/\${Search_value}/\${Replace_value}/g intrepid_sps_val.parm (2 Replies)
Discussion started by: katakamvivek
2 Replies

3. Shell Programming and Scripting

Replacing using sed

hi Guys, I have a rar file which consists of 10 files. each file has a space in its file name. how can i replace all spaces with _ i can replace them using sed but the thing is i need to replace using a script and not command. can anyone help me out??:confused: (2 Replies)
Discussion started by: rajeshb6
2 Replies

4. Shell Programming and Scripting

replacing by sed

hi my input file has got >,,,, or >, or >,,,,,, there are independent number of commas after >.... i want the o/p as > only that is just to remove "," after">" another is: i want to replace the last line of the file and to replace it by "hello"...how to do?... any nice script plz help (2 Replies)
Discussion started by: Indra2011
2 Replies

5. Shell Programming and Scripting

Need help with SED for replacing an IP

I need some advice to replace 10.183.x.x with 10.174.17.55 in a file containing multiple 10.183.x.x. Any help would be highly appreciated. (1 Reply)
Discussion started by: sags007_99
1 Replies

6. Shell Programming and Scripting

sed inside sed for replacing string

My need is : Want to change docBase="/something/something/something" to docBase="/only/this/path/for/all/files" I have some (about 250 files)xml files. In FileOne it contains <Context path="/PPP" displayName="PPP" docBase="/home/me/documents" reloadable="true" crossContext="true">... (1 Reply)
Discussion started by: linuxadmin
1 Replies

7. Shell Programming and Scripting

replacing ' with '' using sed

Hi, I have a text file and I would like to replace all occurrences of single quote ' with two consecutive single quotes '' . I have tried sed s/\'/\'\'/ < Folder/outputFile.txt > Folder/otherFile.txt but this replaces only the first occurrence of ' with ''. I want it to replace all the single... (7 Replies)
Discussion started by: DushyantG
7 Replies

8. Shell Programming and Scripting

SED: replacing

Hello, I was looking around, but could not find the answer, so I hope you ppl can help me. I want simply to replace text.:rolleyes: I found out SED would be good for this task.:b: So I tried: :confused: 1.) find text in a line and replace this particular line: for finding... (3 Replies)
Discussion started by: unknown7
3 Replies

9. Shell Programming and Scripting

replacing using sed

its again sed question. i have line - sed "s/$old/$new/g" "$f" > $TFILE && mv $TFILE "$f" working well if old="myoldfile" new="mynewfile" but if i want old="/home/shailesh/1test/" new="/home/shailesh/workspace/" it gives error like sed: -e expression #1, char 9: unknown option to... (2 Replies)
Discussion started by: shailesh_arya
2 Replies

10. Shell Programming and Scripting

Replacing in SED

I want to change the false in Node 1 to true. How do I do that? <Node1> <Usage>false</Usage> <Url>ABC</Url> </Node1> <Node2> <Usage>false</Usage> <Url>DEF<Url> </Node2> (8 Replies)
Discussion started by: superprogrammer
8 Replies
Login or Register to Ask a Question