SED: replacing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SED: replacing
# 1  
Old 02-11-2011
Tools 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.Smilie
I found out SED would be good for this task.Smilie


So I tried: Smilie

1.) find text in a line and replace this particular line:
for finding searchstring as part of line e.g.: this line contains a searchstring bla bla...?!
And whole line should be replaced by "replaces_the_old_line_with_this"
(makefile is in current folder - file is writeable)

Code:
sed -e '/searchedstring/c\replaces_the_old_line_with_this' makefile

2.) replace text thorugh other text:
Code:
sed -e '/include \$(BUILDPATH)\/FOLDER1\/FOLDER2\/c\ TEXT \$(BUILDPATH)\/FOLDER-CHANGED\/ANOTHERFOLDER\/BLA_FOLDER\/FILENAME' makefile


both times I get this error: "sed: command garbled: ..."

so can you tell me waht i do wrong?
especially the "$" and "/" could make errors. But i tried it also for a simple case liek in nr.1 and this didn't work as well.


Thanks a lot.
Best regards!
# 2  
Old 02-11-2011
Can you post a input and expected output here
# 3  
Old 02-11-2011
Quote:
Originally Posted by unknown7
Hello,

Code:
sed -e '/searchedstring/c\replaces_the_old_line_with_this' makefile

2.) replace text thorugh other text:
Code:
sed -e '/include \$(BUILDPATH)\/FOLDER1\/FOLDER2\/c\ TEXT \$(BUILDPATH)\/FOLDER-CHANGED\/ANOTHERFOLDER\/BLA_FOLDER\/FILENAME' makefile


both times I get this error: "sed: command garbled: ..."

so can you tell me waht i do wrong?
especially the "$" and "/" could make errors. But i tried it also for a simple case liek in nr.1 and this didn't work as well.


Thanks a lot.
Best regards!
Assuming that $(BUILDPATH) is a command that returns a string. You need to take a look at what your shell needs concerning quotation and shell variables in sed.
Highlighting some points you should take a look

Code:
sed -e "/include \$(BUILDPATH)\/FOLDER1\/FOLDER2\/c\ TEXT \$(BUILDPATH)\/FOLDER-CHANGED\/ANOTHERFOLDER\/BLA_FOLDER\/FILENAME" makefile

Missing / to complete the first / for matching
This User Gave Thanks to Aia For This Post:
# 4  
Old 02-15-2011
let me start with basics... to ensure sed works at my machine... simple text replacement..

replace old_string with new_string (just was written word)

my test file: file1 in dir - where i'm at the moment i start sed command

Quote:
# -------------------------------------------------------------------------
# This is my test file
# -------------------------------------------------------------------------
# Just for testing purpose
# -------------------------------------------------------------------------
# old_string should be replaced with new_string
# -------------------------------------------------------------------------
old_string;
if(old_string)!=new_string;
-> did not work
else
-> worked: old string was replaced by new string

# ------------------------------------------------------------------------ #
# ... #
# ------------------------------------------------------------------------ #
my command:
sed -e 's/old_string/new_string;' file1
or
sed -e "s/old_string/new_string" file1

bote does not work:
error: sed -e "s/old_string/new_string" file1


thanks for help

---------- Post updated at 01:45 PM ---------- Previous update was at 12:04 PM ----------

reading helps ;-)

I really shouldn't skip the first information in the man pages Smilie...
it says: "SED edits in a file and gives output to stream."
That gnerated my problem...

so this comand works... for all who are walking into same trouble and because a thread should always have a solution at the end Smilie

command works:
Code:
sed -e 's/old_string/new_string/g' file1 > tmpfile1 && mv tmpfile1 file1

so I'll have a try for my real problem with patchs and other vars but should work now. Just could not start to work on the problem, because the error information did not help me.

---------- Post updated at 05:02 PM ---------- Previous update was at 01:45 PM ----------

works - issue solved (using backslash for masking path slash and for variable $)
thx
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. UNIX for Dummies Questions & Answers

Replacing digits using sed

How to replace a character followed by a digit using sed? For example lets say I have this file - a1 3242134 54235435 3241235 a2 3214345 45325626 3125435 a3 4236577 54365376 6865678 . . . a3000 5432534 32546546 3254365 I want to replace all... (6 Replies)
Discussion started by: saleheen
6 Replies

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

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