переименование файлов в папке - PullRequest
0 голосов
/ 11 июня 2009

У меня есть несколько файлов в папке с именами, такими как abc_old.php, теперь я хочу переименовать их в abc.php, то есть я хочу удалить это «_old» из всех имен файлов. иди ????

Ответы [ 3 ]

1 голос
/ 11 июня 2009

Возможности оболочки будут ограничены через FTP. Я бы скопировал файлы в локальный каталог. В bash (учитывая, что в приведенном выше заявлении вы утверждаете, что Linux доступен):

for filename in *_old.php
do
  mv $filename ${filename%_old.php}.php
done

Оператор% соответствует концу строки и возвращает $ filename без совпадающего сегмента (бит после%). Следовательно, вышеупомянутое прерывает _old.php и затем заменяет .php.

Я не проверял выше. Попробуйте сначала на фиктивном каталоге.

1 голос
/ 11 июня 2009

Давным-давно я нашел небольшой фрагмент кода в конце книги по программированию на Perl 4 O'Reilly, который позволяет переименовывать файлы с помощью регулярных выражений. Я использовал это с тех пор. Возможность использовать регулярные выражения Perl, особенно tr и s, сделала переименование файлов таким простым. Вырежьте это, вставьте его в файл с именем rename на вашем пути, сделайте его исполняемым "chmod ugo + x rename" и сохраните его как часть вашего обычного арсенала инструментов. Проверьте, где находится ваш perl, с помощью «which perl» и отрегулируйте первую строку соответствующим образом. Это предполагает, что вы находитесь в системе Unix с доступом к Perl.

#!/usr/bin/perl
# Usage: rename perlexpr [files]

($op = shift) || die "Usage: rename perlexpr [filenames]\n";
if (!@ARGV)
{
  @ARGV = <STDIN>;
  chop (@ARGV);
}
for (@ARGV)
{
  $was = $_;
  eval $op;
  die $@ if $@;
  rename ($was,$_) unless $was eq $_;
}

Итак, для вашего примера, вы можете сделать

rename "s/_old//" *_old.php

К сожалению. Тег для этого вопроса - ftp. Если ваш доступ осуществляется через FTP, это не сработает, потому что у вас не будет доступа к оболочке.

0 голосов
/ 11 июня 2009

Напишите программу, которая зацикливается, анализирует имя файла, вносит необходимые изменения и переименовывает файл. Я не знаю ни одного быстрого способа сделать это.

Вам, вероятно, будет проще скопировать файлы на локальный компьютер, запустить программу, чтобы изменить имя, а затем загрузить вновь названные файлы обратно на FTP-сервер (и, очевидно, удалить старые)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...