[linux-l] Tausender-Punkte bei ls

Stefan Bund asbund at gmx.de
Fr Apr 30 15:45:21 CEST 2004


Ivan Villanueva <iv at artificialidea.com> writes:
[...]
> Ich habe dieses Perl-Script nicht ausprobiert. Ich nehme an, es
> funktioniert. Aber wer soll es verstehen oder ändern können ?

*g* als perl Programmierer sollte man das schon noch verstehen. Es
sieht natürlich als Einzeiler etwas schlimm aus, aber wenn ich dein
Java-Programm in eine Zeile packe, sieht das auch nicht mehr gerade
hübsch aus. Also gut, hier etwas übersichtlicher:

#!/usr/bin/perl

sub thousandsDots
{
    local ($1,$2,$3); # wegen verschachtelter RE's
    my $number = $_[0];

    $number =~ s/([0-9])(?=([0-9]{3})+$)/$1./g;

    return $number;
}

while(<>) {
    s/^([^ ]+ +[0-9]+ +.{8}[^ ]* +.{8}[^ ]*) *([0-9]+)(.*)$/$1.sprintf("%15.15s",thousandsDots($2)).$3/e;
    print;
}

man könnte den letzten regulären Ausdruck auchnoch etwas entzerren,
indem man mit split arbeitet ...

> import java.io.* ;
[... langes java programm ...]
> }

Also ich muss sagen *freiwillig* würde ich gerade *sowas* nie in java
programmieren ... nach diesem Beispiel erst recht nicht mehr :-)

Habe genug mit Java zu tun gehabt um zu wissen, wovon ich rede. Ich
für mich versuche mich an die Maxime zu halten 'the best tool for the
job' ... und wenn ich schnell mal eben einen Filter schreiben muss,
der irgendwelche Strings verbiegt, ist perl immerhin ziemlich
effizient. Allerdings schreibe ich in perl keine grossen Projekte, da
nehme ich dann doch lieber python ... aber das ist was anderes :-)

Ich will jetzt aber keinen Sprachkrieg auslösen ... soll jeder es so
machen, wie er will ...

Stefan.



Mehr Informationen über die Mailingliste linux-l