Being forced to use CVS for a current client and the address changed for the remote repo. The only way I can find to change the remote address in my local code is a recursive search and replace.
However, with the sed command I'd expect to work:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
I get an error for every file:
sed: 1: ".//file/path ...": invalid command code .
I've tried to escape the periods in the sed match/replacement but that doesn't solve anything.
If you are on a OS X, this probably has nothing to do with the sed command. On the OSX version of
sed
, the-i
option expects anextension
argument so your command is actually parsed as theextension
argument and the file path is interpreted as the command code.Try adding the
-e
argument explicitly and giving''
as argument to-i
:See this.
Probably your new domain contain
/
? If so, try using separator other than/
insed
, e.g.#
,,
etc.It would also be good to enclose
s///
in single quote rather than double quote to avoid variable substitution or any other unexpected behaviourYou simply forgot to supply an argument to
-i
. Just change-i
to-i ''
.Of course that means you don't want your files to be backed up; otherwise supply your extension of choice, like
-i .bak
.