В Linux почтенная утилита Perl переименовывает дружественна:
$ rename 's/^image0+//' image*.jpg
Вы должны знать, что удаление ведущих нулей разрушит порядок сортировки, то есть *.jpg
порядков, таких как:
1.jpg
10.jpg
11.jpg
...
2.jpg
20.jpg
Если вы хотите сохранить порядок, просто используйте
$ rename 's/^image//' image*.jpg
вместо.
добавлено в ответ на идентификацию системы
Скорее всего, вы можете написать скрипт только на bash, но это было бы нетривиально, и случаи сбоев действительно должны обрабатываться правильно. Да, поднять Perl на систему тоже нетривиально, но это легко, и это колесо уже изобретено
Fedora Core 8 Perl RPM: http://rpm.pbone.net/index.php3/stat/4/idpl/5152898/dir/fedora_8/com/perl-5.8.8-30.n0i.51.fc8.i386.rpm.html
CPAN переименовать: http://metacpan.org/pod/File::Rename
добавлено в ответ на тихий сбой
rename
как chmod
будет жаловаться, если вы дадите ему некорректные аргументы, но оба молчат, если то, что вы запрашиваете, не имеет никакого эффекта. Например
$ ls -l junk
-rw-r--r-- 1 msw msw 0 2010-09-24 01:59 junk
$ chmod 688 junk
chmod: invalid mode: '688'
$ chmod 644 junk # was already 644 mode, nothing happened no error
$ rename 's/bob/alice/' ju*k
# there was no 'bob' in 'junk' to substitute, no change, no error
$ ls -l junk
-rw-r--r-- 1 msw msw 0 2010-09-24 01:59 junk
$ rename 's/un/ac/' j*k # but there is an 'un' in 'junk', change it
$ ls -l j*k
-rw-r--r-- 1 msw msw 0 2010-09-24 01:59 jack
Вы можете сделать rename
менее тихим:
$ rename --verbose 's/ac/er/' j*k
jack renamed as jerk
$ rename --verbose 's/ac/er/' j*k # nothing to rename
$