Perl vereinfacht UNIX-Administration

Die wachsende Verfügbarkeit macht Perl zu einer immer beliebteren Wahl für System-Scripting und für Routine-Textverarbeitung. Dies gilt vor allem in der UNIX-Welt, wo das Tippen von ASCII-Text für die meisten Administratoren fast zum täglichen Brot gehört.

Perl ist überall. Die meisten UNIX-Systeme werden mit Perl ausgeliefert, und auf allen anderen wird es normalerweise schnell installiert. Mac OS X wird mit Perl ausgeliefert, und jeder NT-Administrator, der oder die etwas auf sich hält, installiert es sofort.

Die selben User, die ein dreizeiliges Perl-Script für einen Task schreiben, den sie ausführen möchten, geben sich jedoch bei der Arbeit mit der Kommandozeile häufig für alte Tools wie cut, wc und sed her. Das muss nicht sein. Perl bietet eine extrem praktische Befehlszeilen-Funktionalität, die dazu beitragen kann, dass UNIX-Kommandozeilen-Tools bald der Vergangenheit angehören. Die unten stehende Erläuterung geht von einer UNIX bourne, ksh oder csh Befehlsshell aus. Alle Perl-Beispiele lassen sich auf NT portieren, benötigen dann aber einen anderen Abschluss.

Alles beginnt mit der Option -e, die dem ausführbaren Perl-Programm mitteilt, dass das nächste Argument ein zu kompilierendes und auszuführendes Perl-Statement ist. Die einfachste Verwendung ist als ungeschickter Ersatz für den Befehl echo:


perl -e 'print "Hello world";'

Man beachte die einfachen Anführungszeichen, die nötig sind, um den nachfolgenden Text in ein einziges Argument zu gruppieren. Auch normale (doppelte) Anführungszeichen könnte man verwenden – dann allerdings hätten die Anführungszeichen innerhalb des Befehls einen anderen Abschluss benötigt. Die Ausgabe dieses Befehls ist natürlich der String Hello world.

Zugegeben, das einmalige Ausführen eines einzelnen Perl-Kommandos ist nicht besonders nützlich. Zieht man aber den funktionsreichen Befehlssatz von Perl in Betracht, kann selbst eine einzelne Zeile extrem hilfreich sein. Mit der Option -p, die Perl mitteilt, für jede angebotene Standard-Eingabezeile den Befehl -e einmal auszuführen, beginnt Perl, seinen ganzen Nutzen zu präsentieren. Für jeden dieser Abläufe wird der Wert der verarbeiteten Zeile in der traditionellen Variablen $_ gespeichert. Nachdem jede Zeile durch den Befehl -e gefiltert wird, wird sie als Standard-Output gedruckt. Verwendet man anstelle des -p die Option -n, wird die Ausgabe unterdrückt.

Der offensichtlichste Verwendungszweck für diese neue Option ist als sed-ähnliches Werkzeug zum Suchen und Ersetzen:


perl -p -e 's/old/new/g;'

Dieser Befehl ersetzt alle Instanzen des String old in der Standard-Eingabe durch den String new und sendet die Resultate dann an die Standard-Ausgabe. Um diesen ‚Suchen und Ersetzen‘-Befehl auf eine Textdatei anzuwenden, verwenden wir eine „Pipe- und File-Umleitung“ nach dieser Art:


cat myfile | perl -p -e 's/old/new/g;' > newfile

Der modifizierte Datei-Content befindet sich nun in der Datei mit dem Namen newfile.

Bis jetzt haben wir noch nichts gesehen, was nicht auch mit den klassischen UNIX-Kommandozeilen-Tools genauso leicht erledigt werden könnte. Der Befehl echo bearbeitet unseren String Hello world, und sed spart Tipparbeit beim Befehl ‚Suchen und Ersetzen‘. Fügt man jedoch die Option -i zur Vor-Ort-Bearbeitung (in-place editing) ein, übertrifft Perl die Fähigkeiten dieser alten Bekannten mit Leichtigkeit.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Perl vereinfacht UNIX-Administration

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *