Ser obligado a usar CVS para un cliente actual y la dirección cambió para el repositorio remoto. La única forma que puedo encontrar para cambiar la dirección remota en mi código local es mediante una búsqueda y reemplazo recursivo.
Sin embargo, con el comando sed espero que funcione:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
Me sale un error por cada archivo:
sed: 1: ".//file/path ...": invalid command code .
Intenté escapar de los períodos en el emparejamiento / reemplazo de sed, pero eso no resuelve nada.

RE error: illegal byte sequencea MacOS.sed -i '' 's/blah/xx/g'-edespués de-ihacer unasedcopia de seguridad de todos mis archivos de esta manera: "foo.txt" -> "foo.txt-e". Obviamente, lo que quería era más bien-i '', es decir, no hacer una copia de seguridad de los archivos modificados.-i -ecombinado con unfindresultado en muchos muchos archivos que terminan en-e-e-e-e-e-e-e.Simplemente olvidaste dar un argumento a
-i. Solo cambia-ia-i ''.Por supuesto, eso significa que no desea que se haga una copia de seguridad de sus archivos; de lo contrario, proporcione su extensión de elección, como
-i .bak.fuente
En OS X, nada ayuda a que el pobre desarrollo interno sea adecuado. La solucion es:
Y luego use gsed en lugar de sed, que funcionará como se esperaba.
fuente
Probablemente su nuevo dominio contenga
/? Si es así, intente usar un separador que no sea/ensed, por ejemplo#,,etc.También sería bueno encerrar
s///entre comillas simples en lugar de comillas dobles para evitar la sustitución de variables o cualquier otro comportamiento inesperadofuente