sed-Befehl funktioniert nicht in der mac
Folgenden sed-Befehl funktioniert nicht auf meinem lion mac.
find . -type f -exec sed -i 's/user_dashboard/user/g' {} \;
Ich bin immer diese Fehlermeldung
sed: 1: "./vendor/assets/javascr ...": invalid command code .
- wenn Sie dies tun, auf OSx verwenden, benötigen Sie
sed -i ""
zu benennen Sie Ihre Datei in-place. Viel Glück. -i
als Sie es zu benutzen ist ein GNU -sed
Funktion.- Das ist richtig; Sie sollten senden Sie als Antwort, so können Sie Kredit für Sie.
- markieren Sie eine Antwort
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die OSX-version von
sed
ist nicht die gleiche wie jene, die in den meisten Linux-Systemen.Es erweitert die
-i
option, Ihnen die Möglichkeit geben, speichern Sie eine Datei mit einer anderen Erweiterung, erfordert aber die Eingabe für die Erweiterung.Wenn Sie nur wollen, um die Datei zu überschreiben, können Sie verwenden müssen
sed -i "" ...sedCmd.... fileName
zu benennen Sie Ihre Datei in-place.Pro @JamesMcMahon 's Kommentar, siehe hier für die die vollständige doc für OSX/BSD-sed.
Ich hoffe, das hilft.
-i
wahrscheinlich eine andere Bedeutung hat (nicht "in-place") in der version der sed. Versuchen Sie es mitgsed
falls verfügbar, oder ersetzen-i
mit-e
und die Verwendung einer temporären Datei (und einmv
danach) nachahmen.sudo port install gsed
ersetzen von text in eine text-Datei on-the-fly mit der sed auf dem mac möglich ist.
des Befehls ist nur ein wenig anders.
mit: -ich , geben Sie eine Erweiterung, wo die sed wird speichern Sie die ursprüngliche Datei vor der sed Betrieb.
führen Sie den Befehl wie: