====== kleine Sammlung von Perl-Einzeilern ====== ===== Text einer Datei ersetzen ===== cat alt.txt | perl -ne '$_ =~ s/falsch/richtig/; print;'> neu.txt oder besser: perl -pi -e 's{#PKGMGR=.*?\n}{PKGMGR=DPKG\n}' /etc/rkhunter.conf ===== Zeitstempel von Dateien sichern ===== find . | exec perl -ne ' chop(); $mtime=(stat($_))[9]; ($sec,$min,$hours,$mday,$mon,$year)=localtime($mtime); $year += 1900; $mon++; $mtimestring = sprintf("%04d%02d%02d%02d%02d.%02d", $year, $mon, $mday, $hours, $min, $sec); test -r \"$_\" && print "touch -t \"$mtimestring\" $_\n"; ' Die Ausgabe kann als Shell-Script ausgeführt werden. ===== Unix in Menschenzeit ===== Bsp. von ''1287693716'' perl -e '($sec,$min,$hours,$mday,$mon,$year)=localtime(1287693716);$year += 1900; $mon++; printf("%04d.%02d.%02d %02d:%02d.%02d\n", $year, $mon, $mday, $hours, $min, $sec); ===== gerade oder ungerader Tag im Jahr ===== perl -e '$tagimjahr=(localtime)[7]; $einoderzwei=($tagimjahr) % 2; print "$tagimjahr $einoderzwei\n"; exit($einoderzwei)' ===== nach Wörtern splitten (split) ===== echo "aa;bb" | perl -ne 'chomp; ($u, $p)=split(/;/); print "$p\n";' echo "aa;bb" | perl -ne 'chomp; ($u, $p)=split(/;/); print "$u\n";' ===== einen Teil aus der Zeile extrahieren ===== * erstes Wort (IP-NUmmer) extrahieren cat datei | perl -ne 'm/^([\d\.]+)\s/; print "$1\n";' ===== Passwort generieren ===== perl -le 'print map { ("a".."z")[rand 26] } 1..8' ====== Links ====== * http://www.catonmat.net/blog/perl-book/