Ruby-Programmierung: Einzeiler
Zurück zu Ruby-Programmierung Hauptmenü
Einleitung
BearbeitenMit 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
BearbeitenAlle 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
BearbeitenDieser 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