У меня есть папка, содержащая 96 файлов, которые я хочу переименовать. Проблема в том, что для каждого имени файла требуется уникальное изменение... не то, что добавление нуля перед каждым именем или изменение расширений. Выполнять поиск и замену нецелесообразно. Вот пример имен, которые я хочу изменить:
newSEACODI-sww2320H-sww24_07A_CP.9_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07B_CP.10_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07C_CP.11_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07D_CP.12_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07E_R.1_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07F_R.3_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07G_R.4_sww2320H_sww2403F.fsa
newSEACODI-sww2320H-sww24_07H_R.5_sww2320H_sww2403F.fsa
Я хотел бы использовать perl, чтобы изменить приведенные выше имена на приведенные ниже имена соответственно:
SEACODI_07A_A.2_sww2320H_2403F.fsa
SEACODI_07B_A.4_sww2320H_2403F.fsa
SEACODI_07C_H.1_sww2320H_2403F.fsa
SEACODI_07D_H.3_sww2320H_2403F.fsa
SEACODI_07E_H.6_sww2320H_2403F.fsa
SEACODI_07F_H.7_sww2320H_2403F.fsa
SEACODI_07G_Rb.4_sww2320H_2403F.fsa
SEACODI_07H_Rb.9_sww2320H_2403F.fsa
Можно ли такое сделать? У меня есть смутное представление о том, что я мог бы создать текстовый файл со списком новых имен и назвать этот список @newnames. Я бы сделал еще один массив из текущих имен файлов и назвал бы его @oldnames. Затем я бы сделал какой-то цикл for
, в котором каждый элемент $i в @oldnames заменяется соответствующим $i в @newnames.
Однако я не знаю, как сделать массив из моих текущих имен файлов, и поэтому я не уверен, что эта расплывчатая идея находится на правильном пути. Я храню свои файлы с перепутанными именами в каталоге под названием «oldnames». Ниже приведена моя попытка создать массив из имен файлов в этом каталоге:
#!/usr/bin/perl -w
use strict; use warnings;
my $dir = 'oldnames';
opendir ('oldnames', $dir) or die "cannot open dir $dir: $!";
my @file = readdir 'oldnames';
closedir 'oldnames';
print "@file\n";
Вышеупомянутое, похоже, ничего не делало. Я потерялся. Помощь?
mv oldname newname
, а затем вы можете запустить его, когда он будет выглядеть правильно. - person Bill Ruppert   schedule 16.07.2013mv
для каждого файла, так как всего их около сотни. - person user2585169   schedule 17.07.2013