We help IT Professionals succeed at work.

Find / Replace escape

hankknight
hankknight asked
on
Medium Priority
272 Views
Last Modified: 2008-02-01
Hello,

I want to do a find and replace on ALL files in a directory, using this:

       find /home/me/directory/ -type f | while read fname
       do
          sed 's/\FIND/REPLACE/g' $fname > $fname.new
         mv -f $fname.new $fname
       done



But I want to find this:
   <img src="images/my_image.jpg" width="150" height="50" hspace="5">


and replace it with this:
   <a href="link.name" target="_blank"><img src="image.gif" width="50" height="50" hspace="5" border="0" /></a>




What charactors to I need to escape and how do I escape them?


Thanks!
Comment
Watch Question

CERTIFIED EXPERT
Top Expert 2006
Commented:
Hi hankknight,

You need to escape each speacial character with a \  ... field separator is also special character in a sed command, so use : instead of /  and you dont have to escape the / characters ...

sed 's:<img src="images/my_image.jpg" width="150" height="50" hspace="5">:<a href="link.name" target="_blank"><img src="image.gif" width="50" height="50" hspace="5" border="0" /></a>:g'

This should work ... Let me know the error if it fails

Cheers!
sunnycoder

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Thanks,

What about each of these?  Which ones need escaping?

? \ . [ ] ^ $ & % \ _ > + = | !
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015
Commented:
\\  \. \[  \^  \$  
and perhaps \! depending on your shell
CERTIFIED EXPERT
Top Expert 2006

Commented:
Look at the man page of sed on your machine ... that should contain the list of special characters

Cheers
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.