Я делаю такую групповую работу с использованием PHP и phpSecLib2, работающих на моем Linux-поле.
Использование SecLib, запуск SSH-соединения в поле Linux, на которое вы хотите переименовать файлы, и запустить «ls» внутри папки. Затем взорвите список файлов в массив PHP, за которым следует a для каждого цикла.
Пример кода следующим образом (предполагается, что местоположение файла на сервер в/главная/пользователя/файлы/и расположение сервера локальный):
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('localhost');
if (!$ssh->login('SSHUSER', 'SSHPASS')) {
exit('Login Failed');
}
$filelist = $ssh->exec("cd /home/user/files;ls");
$filearray = explode("\n", $filelist);
foreach ($filearray as $key) {
$newarray = explode("-", $key);
$newfile = $newarray[1] . $newarray[2] . $newarray[3] . $newarray[4] . ".wav";
$newfile = (string)$newfile;
$oldfile = (string)$key;
$rename = "cd /home/user/files;mv '" . $oldfile . "' '" . $newfile . "'";
$rename = (string)$rename;
$runrename = $ssh->exec($rename);
}
echo "Done!";
?>
Приведенный выше код должен работать с минимальными изменениями (логин/пароль и изменение местоположения папки).
Лучший способ сделать это зависит от используемой ОС. sed - почти наверняка неправильный подход. Так скажите нам ОС и, если это UNIX, оболочка, которую вы используете. Обновите теги для соответствия. –
Все ли файлы в одной папке или находятся в разных подпапках? И как «другой» является частью '-G6546525.1'? Являются ли они одинаковыми, кроме цифр? – lurker
Во-первых, большое спасибо за быстрые ответы. – user3052324