
Ich verwende Ubuntu 14.04 und eine Magento-Website auf meinem lokalen System.
Jetzt habe ich ein Modulverzeichnis, in dem ich jedes Vorkommen von „Magento\Module“ durch „MyCompany\Module“ in allen Dateien in diesem aktuellen Ordner und natürlich seinen Unterverzeichnissen rekursiv ersetzen möchte, aber ich vermute, dass dies nicht funktioniert, weil in meiner Such- und Ersetzungszeichenfolge „\“ vorhanden sind.
Ich habe bereits versucht:
find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;
Aber es funktioniert überhaupt nicht.
Bitte helfen Sie irgendjemandem, es ist dringend.
Antwort1
Die Shell verbraucht wahrscheinlich einen der Escape-Befehle:
$ echo sed "s/Magento\\Module/MyCompany\\Module/g"
sed s/Magento\Module/MyCompany\Module/g
Fügen Sie also entweder ein zusätzliches Escape-Zeichen hinzu oder setzen Sie den gesamten Ausdruck in einfache Anführungszeichen:
$ echo sed "s/Magento\\\Module/MyCompany\\\Module/g"
sed s/Magento\\Module/MyCompany\\Module/g
$ echo sed 's/Magento\\Module/MyCompany\\Module/g'
sed s/Magento\\Module/MyCompany\\Module/g
Testen:
$ echo 'every occurrence of "Magento\Module"' | sed 's/Magento\\Module/MyCompany\\Module/g'
every occurrence of "MyCompany\Module"