Mit „sed“ unter Linux massenweise Text ersetzen

Veröffentlicht am Veröffentlicht in Linux

Vor kurzem stand ich vor der Herausforderung, dass ich in einem Magento Shop wegen eines PHP Updates auf die Version 5.3 massenweise die PHP-Funktion split(), die veraltert ist, ersetzen musste.

Hier halt mir die Bash mit einer einzigen Zeile die meisten Ersetzungen korrekt durchzuführen.

find . -type f -print0 | xargs -0 -n 1 sed -i -e „s/‘ split(‚/‘ preg_split(‚/g“

Mit diesem einfachen Befehl geht find rekursiv durch die Verzeichnisse und übergibt den Inhalt der jeweiligen Dateien jeweils zum Durchsuchen und Ersetzen an sed. Hier sucht sed dann nach dem String “ split(“ und ersetzt diesen durch “ preg_split(„. Alternativ könnte man hier auch die Funktion explode() wählen, diese wäre schneller, funktioniert aber nur mit regulären Ausdrücken.

Quelle:

Eine gute Anleitung für die notwendigen Änderungen an Magento 1.3 unter PHP 5.3 findet man hier: https://kb.magenting.com/content/18/26/en/how-to-run-magento-13-with-php-53-version.html

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.