HowTo: Textersetzung in mehreren Dateien mit Perl (preg) unter Windows und Linux

Neulich stellte sich mir folgendes Problem:
Ich hatte viele Dateien, in denen ich Text ersetzen wollte. Mit einem normalen Editor ist dies schlecht möglich. Abhilfe schafft der Perl Interpreter:

1
2
3
4
5
6
7
8
perl -pi -w -e 's/search/replace/g;' *.html
 
    -e Argument ausführen (execute)
    -i "in-place" editieren
    -w Warnungen ausgeben
    -p "loop"
 
siehe auch perl -h

Beispiel Datum 1

Es soll das Datum von 2008 auf 2009 in allen html-Dateien im aktuellen Verzeichnis aktualisiert werden:

1
perl -pi -w -e 's/2008/2009/g;' *.html

Beispiel Datum 2

Es soll das Datum von 200x auf 2009 in allen html-Dateien im aktuellen Verzeichnis aktualisiert werden:

1
perl -pi -w -e 's/200[0-8]/2009/g;' *.html

Beispiel: Verzeichnisse rekursiv durchsuchen (nur Linux)

1
2
3
4
5
find * | grep -E "\.html$" | xargs perl -pi -w -e 's/search/replace/g;'
 
    find * gibt alle Dateien und Verzeichnisse aus
    grep -E "\.html$" selektiert nur Dateinamen, die auf .html enden
    xargs gibt die Dateinamen als Parameter an Perl weiter

Keine Kommentare

Noch keine Kommentare.

RSS Feed für Kommentare zu diesem Artikel. TrackBack URI

Hinterlasse einen Kommentar

WordPress Themes