2011-01-07 3 views
0

Ich bin hier ziemlich fest. Bitte helfen Sie.Wie benenne ich Dateien, die float-Numeren enthalten, in fortlaufende Nummer

Ich habe eine große Anzahl von Dateien, wie das genannt:

plot_[0-9]*\.?[0-9]+\.png 

e. G. plot_.0012.png oder plot_1.12.png.

Gibt es eine Möglichkeit, sie in plot_{5 digits}.png, wie plot_00012.png und plot_11200.png umzubenennen?

Jede Hilfe wäre wirklich toll!

Grüße, Jürgen

+0

Windows oder Linux? – Amirshk

+1

und wenn Sie eine Regex wollen, welche Programmiersprache? – Gerrat

+0

Kann es vor dem Punkt mehr als eine Ziffer geben, und wenn ja, wie wirkt sich das auf die "5-stellige" Regel aus? Ist es richtig, dass, wenn es vor dem Punkt keine Zahl gibt, stattdessen eine "0" verwendet werden sollte? Und ist es auch richtig, dass die sich ergebende Zahl auf 5 Stellen auf der rechten Seite null-aufgefüllt wird (so wird "1.12" zu "11200", aber ".0012" wird zu "00012")? –

Antwort

0

Hier ist ein Weg, um es in Perl zu tun:

#!/usr/bin/perl 
use strict; 
use warnings; 
use 5.10.1; 
use Data::Dumper; 

while(<DATA>) { 
    chomp; 
    print "$_ --> "; 
    s/^(plot_)(\d*)\.?(\d+)(\.png)$/$1 . '0'x(6-length("$2+$3")) . $2 . $3 . $4/e; 
    say; 
} 

__DATA__ 
plot_.0012.png 
plot_1.12.png 
plot_12.023.png 
plot_1.png 

Ausgang:

plot_.0012.png --> plot_00012.png 
plot_1.12.png --> plot_00112.png 
plot_12.023.png --> plot_12023.png 
plot_1.png --> plot_00001.png