Ruby-Programmierung: Einzeiler

Aus Wikibooks

Zurück zu Ruby-Programmierung Hauptmenü

Einleitung[Bearbeiten]

Mit dem Ruby Interpreter ist es möglich auch direkt Befehle ohne einen Datei-Aufruf auszuführen. Da alles auf einer Zeile geschrieben wird, ist der Begriff "one liner" entstanden. Die Technik ist vorallen im Perl Lager sehr verbreitet und wird gern in Kombination über Unix-Pipes zur schnellen Textverarbeitung auf der Shell verwendet.

Schalter/Optionen[Bearbeiten]

Alle Optionen können mit --help angezeigt werden.

 ruby --help

Hier die wichtigsten:

 -e 'Befehl' Der auszuführende Ruby Code.
 -rBibliothek bindet eine Bibliothek ein.
 -n ein Loop wird um die Datei erzeugt.
 -p genau wie -n nur das der Inhalt auch ausgegeben wird.

Beispiele[Bearbeiten]

Dieser Einzeiler sucht nach dem Wort "vorher" und ersetzt alle PHP-Dateien im aktuellen Verzeichnis mit dem Wort "danach". Es wird ein Backup der Originaldatei mit der Endung bkp erstellt:

 ruby -i.bkp -pe "gsub(/vorher/, 'danach')" *.php

Die Prüfsumme von datei.txt ausgeben:

 ruby -r 'digest/md5' -e 'puts Digest::MD5.hexdigest(File.read("datei.txt"))'

Die letzten 10 Zeilen von datei.txt ausgeben:

 ruby -e 'puts STDIN.readlines.reverse!.slice(0,10).reverse!' < datei.txt

Zeile 23 von datei.txt ausgeben:

 ruby -pe 'next unless $. == 23' < datei.txt