Ich habe den folgenden sed
Befehl erfolgreich verwendet, um Text unter Linux zu suchen / zu ersetzen:
sed -i 's/old_link/new_link/g' *
Wenn ich es jedoch unter Mac OS X versuche, erhalte ich Folgendes:
"Befehl c erwartet \ gefolgt von Text"
Ich dachte, auf meinem Mac läuft eine normale BASH-Shell. Was geht?
BEARBEITEN:
Laut @High Performance liegt dies daran, sed
dass der Mac eine andere (BSD) Variante hat. Meine Frage wäre daher, wie ich diesen Befehl in BSD repliziere sed
.
BEARBEITEN:
Hier ist ein aktuelles Beispiel, das dies verursacht:
sed -i 's/hello/gbye/g' *
sed
ein "c" in Ihren Daten als Befehl angezeigt wird. Verwenden Sie eine Variable? Bitte posten Sie etwas, das den tatsächlichen Befehl und einige Daten, die Sie verarbeiten, genauer darstellt. Sie können eine einfache Demonstration dieses Fehlers erhalten, indem Sie dies tunecho x | sed c
.