[Eisfair] perl-Frage: Zeichen aus String entfernen
Marcus Roeckrath
marcus.roeckrath at gmx.de
Mi Aug 1 10:45:48 CEST 2018
Hallo,
Marcus Roeckrath wrote:
> aus einer Eingabe wie dieser
>
> Total file size: 313,631,808 bytes
>
> wobei in der Zahl gegebenenfalls auch ein Punkt als Tausendertrenner statt
> des , auftauchen könnte, wird die Zahl so ausgefilter:
>
> elsif($line =~ /Total file size:\s+([\d,.]+)/){
> $bkdata{$source}{'file_size'}=$1;
>
> womit dann file_size 313,631,808 enthält.
>
> Da mit dieser Zahl noch Berechnungen gemacht werden müssen, müssen die
> Tausendertrenner - also entweder , oder . - noch raus.
>
> Wie entferne ich aus dieser Variablen nun , oder ., so dass als Ergebnis
>
> 313631808
>
> rauskommt.
Vielleicht habe ich zuwenig Infos über den Code geliefert:
Die oben ausgelesenen daten (file_size) werden in folgender Zeile (eine
Subroutine) weiterverarbeitet.
my $bytes = $bkdata{$source}{'file_size'}/1000000; # convert to MB
was wegen der Tausendertrenner Fehler auswirft, da es kein numerical sei.
Vielleicht kann man aus der Variablen bytes um die , bzw . erleichtern, als
Idee so - geht natürlich nicht:
my $bytes = $bkdata{$source}{'file_size'};
bytes = bytes ohne , oder .
bytes = bytes / 1000000
Ich habe keine Ahnung von perl, brauche das aber, um ein perl-Skript aus der
rsnapshot-Source zu fixen.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair