Operating System - HP-UX
1748125 Members
3197 Online
108758 Solutions
New Discussion юеВ

Re: help me with search & replace string (quoting)

 
Steven Schweda
Honored Contributor

Re: help me with search & replace string (quoting)

 
Dennis Handly
Acclaimed Contributor

Re: help me with search & replace string (quoting)

>And this is the error I am having when I run:

 

This is the same error that Steven told you how to fix before and again just now.

 

>file="/tmp/fr/danilo/"

>sed "s/$string1/$string2/g" $file > $file.new

 

Your assignment to "file" above isn't going to work since will be treated as a directory path when adding ".new".

If you do want to scan/change mass quantities, you need to tell us how you find those 30,000 files.

Also, the above code changes the file modification date, even if the string isn't found.  Do you want to not change the dates on those?

 

>If you do get the quotation marks into string1 and string2, what do you think will happen when you add more quotation marks to them, as in: "s/$string1/$string2/g"

 

I'm not sure of your point?  If I got those double quotes into the strings (using single quotes), I had no problems with the sed command.  (At least with bash.  And a real shell works too.)

 

I wasn't sure so I explicitly checked it.  Reading the man page briefly may not provide enough detail to figure out what it does, so experiments are also helpful.

Steven Schweda
Honored Contributor

Re: help me with search & replace string (quoting)

 
Dennis Handly
Acclaimed Contributor

Re: help me with search & replace string (quoting)

>It works for me, too. My usual quotation paranoia must be getting out of control.

 

Yes, I didn't think it would be that easy either.

 

It appears once something is quoted, it doesn't matter what the variables inside expand to.

Or course programs like sed and grep may need even more quoting.  :-)