Inhaltsverzeichnis

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

Passwort generieren

perl -le 'print map { ("a".."z")[rand 26] } 1..8'

Links