Rekursive Massenbearbeitung unter Linux
Frage
Ich versuche, bestimmte Zeilen in mehreren Dateien (in Unterordner verstreute) zu ändern, ohne jede Datei einzeln bearbeiten zu müssen. Ich wurde von Chas gegeben. die folgende
perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' *
und es funktionierte wie ein Charme, aber frage mich, ob dieser Befehl oder ähnliches kann rekursiv auf einen Schlag erfolgen
Lösung
find . -type f -exec perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' '{}' '+'
Dies wird es im aktuellen Verzeichnis auf alle Dateien anwenden und alle Unterverzeichnisse. Es wird nicht Symlinks folgen. Sie könnten den Umfang des Fundes mit einer -name Richtlinie auch verengen wollen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow