doku:perleinzeiler
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
- 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
doku/perleinzeiler.txt · Zuletzt geändert: 2012-06-12 07:09 von 127.0.0.1