2009-05-30 5 views
0

Ich versuche, bestimmte Zeilen in mehreren Dateien (verstreut in Unterordnern) zu ändern, ohne jede Datei einzeln bearbeiten zu müssen. Ich wurde von Chas gegeben. die folgendeRekursive Massenbearbeitung in Linux

perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' * 

und es wie ein Zauber gearbeitet, aber frage mich, ob dieser Befehl oder ähnlich rekursiv durchgeführt werden kann in einem

Schuss

Antwort

3
find . -type f -exec perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' '{}' '+' 

Dieses es auf alle Dateien im aktuellen Verzeichnis gelten und alle Unterverzeichnisse. Es folgt nicht Symlinks. Möglicherweise möchten Sie den Suchbereich auch mit der Anweisung -name einschränken.

+0

Danke, es funktioniert! Ich dachte, ich würde hinzufügen, dass er es rekursiv tun würde, heh. Jetzt Zeit, diese Bak-Dateien zu entfernen ... – damx

+0

Sie können wieder zu finden, um diese .bak-Dateien auch loszuwerden :) – bdonlan

+0

* Schlag in den Kopf * wie peinlich ... wegschauen – damx