Automatisiertes Editieren von Dateien

(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)

Bei der Arbeit zu diesem Kapitel ist mir noch ein anderes Anwendungsbeispiel aus der Praxis untergekommen. Ich arbeitete mit einer sehr langsamen Netzverbindung quer über den Pazifik. Das Netz war wirklich überlastet, manchmal dauerte schon das Echo auf ein RETURN mehr als eine Minute. Ich musste nur wenige Änderungen an einer Datei vornehmen, eigentlich nur überall sysread durch read ersetzen, um ein wichtiges Programm zum Laufen zu bringen. An ein simples Editieren mit einem Fullscreen-Editor war bei dieser Verbindung nicht zu denken.

Mit einer einzigen Zeile konnte ich alle nötigen Änderungen erledigen:

% perl -­p -­i -­e 's/sysread/read/g' datei

Das lässt das Perl-Programm s/sysread/read/g ablaufen. (Jawohl, das ist das ganze Programm - die ­-e-Option besagt, dass das ganze Programm als String auf der Befehlszeile folgt.) Auch die Perl-Optionen -­p und ­-i werden benutzt, und das Programm bearbeitet die Daten aus der angegebenen Datei. Kurz gesagt wendet diese Kombination von Optionen die Substitution auf jede Zeile in der Datei an; und die geänderte Datei überschreibt die alte Datei.

Beachten Sie auch, dass kein expliziter String angegeben ist, auf den die Substitution wirken soll; das Konstrukt $var =~ ... fehlt. Mit der angegebenen ­-p-Option wendet Perl das Programm auf jede Zeile an. Weil ich /g benutze, bin ich sicher, dass sysread auch dann ersetzt wird, wenn es mehrfach auf einer Zeile vorkommt.

Ich hätte statt nur einer Datei auch mehrere Dateien angeben können. Perl hätte dann die Substitution auf jeder Zeile jeder der angegebenen Dateien vorgenommen. Auf diese Weise kann man mit einem einzigen Befehl sehr schnell eine große Anzahl von Dateien verändern. Dieser spezielle Befehl ist so gedrängt nur mit Perl möglich, aber die Moral von der Geschicht' ist, dass reguläre Ausdrücke in einer Skriptsprache sehr mächtig sind, auch in kleinen Dosen.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:
   

Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln