Ich glaube, dass unter OS X, wenn Sie -i verwenden, eine Erweiterung für die Sicherungsdateien erforderlich ist . Versuchen Sie:
sed -i .bak 's/hello/gbye/g' *
Mit GNU sed
die Erweiterung ist optional .
Wenn Sie die -i
verwenden Option müssen Sie eine Erweiterung für Ihre Backups angeben.
Wenn Sie Folgendes haben:
File1.txt
File2.cfg
Der Befehl (beachten Sie das fehlende Leerzeichen zwischen -i
und ''
und die -e
damit es auf neuen Versionen von Mac und GNU funktioniert):
sed -i'.original' -e 's/old_link/new_link/g' *
Erstellen Sie 2 Sicherungsdateien wie:
File1.txt.original
File2.cfg.original
Es gibt keinen tragbaren Weg, um das Erstellen von Sicherungsdateien zu vermeiden, da es unmöglich ist, eine Mischung aus sed-Befehlen zu finden, die in allen Fällen funktioniert:
sed -i -e ...
- funktioniert nicht unter OS X, da es-e
erstellt Sicherungensed -i'' -e ...
- funktioniert nicht unter OS X 10.6, aber unter 10.9+sed -i '' -e ...
- funktioniert nicht unter GNU
Hinweis Da es keinen sed-Befehl gibt, der auf allen Plattformen funktioniert, können Sie versuchen, einen anderen Befehl zu verwenden, um dasselbe Ergebnis zu erzielen.
Beispiel:perl -i -pe's/old_link/new_link/g' *