suchen, finden und ersetzen

17/11/2009 - 17:42 von Thomas Steinbach | Report spam
Hallo,

wie kann man mit Hilfe von perl Boardmitteln (also ohne sed oder awk, etc)
ein gegebenes Verzeichnis und seinen Unterverzeichnissen durchlaufen und
dabei
eine bestimmte zeile in den Dateien aendern, bzw. ersetzen. Also z.B. die
Zeile:

#!/usr/bin/perl

in ein

#!/usr/local/bin/perl

aendern/eretzen?


Thomas
 

Lesen sie die antworten

#1 Wolf Behrenhoff
17/11/2009 - 18:28 | Warnen spam
Thomas Steinbach wrote:
Hallo,

wie kann man mit Hilfe von perl Boardmitteln (also ohne sed oder awk, etc)
ein gegebenes Verzeichnis und seinen Unterverzeichnissen durchlaufen und
dabei
eine bestimmte zeile in den Dateien aendern, bzw. ersetzen. Also z.B. die
Zeile:



Also wenn es sich nur um eine Zeile handelt, würde ich immer
perl -pi -e 's/alt/neu/' *
vorschlagen. Das tuts aber nur für alle Dateien im Verzeichnis - und ist
ja auch sozusagen nicht "innerhalb" von Perl.

Innerhalb von Perl: ich würde wohl File::Find verwenden. In dem Code,
den du find übergibst, musst du dann selbst die Dateien àndern. Also ich
würde dann eine neue Datei öffnen, die geànderten Daten da rein
schreiben und schließlich die alte Datei löschen und die neu erstellte
dann umbenennen.

- Wolf

Ähnliche fragen