aboutsummaryrefslogtreecommitdiff
path: root/renumfiles
diff options
context:
space:
mode:
Diffstat (limited to 'renumfiles')
-rwxr-xr-xrenumfiles33
1 files changed, 33 insertions, 0 deletions
diff --git a/renumfiles b/renumfiles
new file mode 100755
index 0000000..28ff2b9
--- /dev/null
+++ b/renumfiles
@@ -0,0 +1,33 @@
+#!/usr/bin/perl -w
+
+sub usage {
+ die "Usage: renumfiles <-fake> <startnum> pattern [files ...]\n";
+}
+
+if($ARGV[0] =~ /^--?f(?:ake)?$/) {
+ $fake = 1;
+ shift;
+}
+
+$num = 1;
+if($ARGV[0] =~ /^\d+$/) {
+ $num = $ARGV[0];
+ shift;
+}
+
+$pattern = $ARGV[0] || usage;
+$pattern =~ s/\%d/%02d/;
+if($pattern !~ /\%\d+d/) {
+ $pattern = "${pattern}_\%02d.jpg";
+}
+shift;
+
+@files = @ARGV;
+usage unless @files;
+
+for(@files) {
+ my $new = sprintf($pattern, $num);
+ warn "'$_' => '$new'\n";
+ rename($_, $new) unless $fake;
+ $num++;
+}