====== 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/