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

War es hilfreich?

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
scroll top