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 sequence
a MacOS.sed -i '' 's/blah/xx/g'
-e
después de-i
hacer unased
copia 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 -e
combinado con unfind
resultado en muchos muchos archivos que terminan en-e-e-e-e-e-e-e
.Simplemente olvidaste dar un argumento a
-i
. Solo cambia-i
a-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