Sendo forçado a usar o CVS para um cliente atual e o endereço alterado para o repositório remoto. A única maneira de encontrar o endereço remoto no meu código local é uma pesquisa e substituição recursiva.
No entanto, com o comando sed, eu esperaria trabalhar:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
Eu recebo um erro para cada arquivo:
sed: 1: ".//file/path ...": invalid command code .
Eu tentei escapar dos períodos na partida / substituição sed, mas isso não resolve nada.
RE error: illegal byte sequence
no MacOS.sed -i '' 's/blah/xx/g'
-e
depois de-i
fazersed
backup de todos os meus arquivos desta maneira: "foo.txt" -> "foo.txt-e". Obviamente, o que eu queria era melhor-i ''
, ou seja, não faça backup dos arquivos alterados.-i -e
combinado com umfind
resultado em muitos arquivos terminando em-e-e-e-e-e-e-e
.Você simplesmente esqueceu de fornecer um argumento para
-i
. Apenas mude-i
para-i ''
.Claro que isso significa que você não deseja que seus arquivos sejam copiados; caso contrário, forneça sua extensão de escolha, como
-i .bak
.fonte
No OS X, nada ajuda os pobres construídos a se tornarem adequados. A solução é:
E então use gsed em vez de sed, que funcionará como esperado.
fonte
Provavelmente seu novo domínio contém
/
? Se assim for, tente usar separador diferente/
emsed
, por exemplo#
,,
etc.Também seria bom incluir
s///
aspas simples em vez de aspas duplas para evitar a substituição de variáveis ou qualquer outro comportamento inesperadofonte