Être obligé d'utiliser CVS pour un client actuel et l'adresse modifiée pour le dépôt distant. La seule façon que je peux trouver pour changer l'adresse distante dans mon code local est une recherche et un remplacement récursifs.
Cependant, avec la commande sed, je m'attendrais à fonctionner:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
J'obtiens une erreur pour chaque fichier:
sed: 1: ".//file/path ...": invalid command code .
J'ai essayé d'échapper aux périodes du match / remplacement sed mais cela ne résout rien.
RE error: illegal byte sequence
sur MacOS.sed -i '' 's/blah/xx/g'
-e
après-i
faitsed
sauvegarde tous mes fichiers de cette manière: « foo.txt » -> « foo.txt-e ». Évidemment, ce que je voulais était plutôt-i ''
, c'est-à-dire ne pas sauvegarder les fichiers modifiés.-i -e
combiné avec un afind
abouti à de nombreux fichiers se terminant par-e-e-e-e-e-e-e
.Vous avez simplement oublié de fournir un argument à
-i
. Changez simplement-i
pour-i ''
.Bien sûr, cela signifie que vous ne voulez pas que vos fichiers soient sauvegardés; sinon fournissez l'extension de votre choix, comme
-i .bak
.la source
Sur OS X, rien n'aide les pauvres sed intégrés à devenir adéquats. La solution est:
Et puis utilisez gsed au lieu de sed, qui fonctionnera comme prévu.
la source
Votre nouveau domaine contient probablement
/
? Si tel est le cas, essayez d'utiliser un séparateur autre que/
insed
, par exemple#
,,
etc.Il serait également bon de placer
s///
entre guillemets simples plutôt que guillemets doubles pour éviter la substitution de variables ou tout autre comportement inattendula source