Sie müssen CVS für einen aktuellen Client verwenden und die Adresse für das Remote-Repo ändern. Die einzige Möglichkeit, die Remote-Adresse in meinem lokalen Code zu ändern, ist ein rekursives Suchen und Ersetzen.
Mit dem Befehl sed würde ich jedoch erwarten, dass es funktioniert:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
Ich erhalte für jede Datei eine Fehlermeldung:
sed: 1: ".//file/path ...": invalid command code .
Ich habe versucht, den Perioden im sed Match / Ersatz zu entkommen, aber das löst nichts.
RE error: illegal byte sequence
unter MacOS.sed -i '' 's/blah/xx/g'
-e
nachdem-i
machtesed
alle meine Backup - Dateien auf diese Weise: „foo.txt“ -> „foo.txt-e“. Offensichtlich wollte ich eher-i ''
, dh keine geänderten Dateien sichern.-i -e
zusammen mit afind
zu vielen, vielen Dateien, die mit endeten-e-e-e-e-e-e-e
.Sie haben einfach vergessen, ein Argument zu liefern
-i
. Wechseln Sie einfach-i
zu-i ''
.Das bedeutet natürlich, dass Sie nicht möchten, dass Ihre Dateien gesichert werden. Andernfalls geben Sie Ihre gewünschte Erweiterung an, z
-i .bak
.quelle
Unter OS X hilft nichts schlecht eingebautem, angemessen zu werden. Die Lösung ist:
Und dann verwenden Sie gsed anstelle von sed, was genau wie erwartet funktioniert.
quelle
Vermutlich enthält Ihre neue Domain
/
? Wenn ja, versuchen Separator die Verwendung anderer als/
insed
, zB#
,,
usw.Es wäre auch gut,
s///
in einfache Anführungszeichen anstatt in doppelte Anführungszeichen zu setzen, um eine Substitution von Variablen oder ein anderes unerwartetes Verhalten zu vermeidenquelle