LINUX.ORG.RU

Замена суффиксов файлов


0

0

Вот, например, есть в каталоге большое кол-во файлов с суффиксом .wav , а хочется заменить их всех на файлы с суффиксом .mp3 (потому что они на самом деле mp3). Может кто знает способ делать это быстро, не переименовывая каждый файл по отдельности?

★★

#!/usr/local/bin/perl

use strict;
use warnings;

use File::Find ();
use File::Copy ();

our @directories = qw(/home/blah /home/blahblah);
our $counter = 0;

sub wanted {
    if (/\.wav$/) {
        my $newname = $_;
        $newname =~ s/\.wav$/\.mp3$/;
        File::Copy::move($_, $newname);
        ++$counter;
        print("$_ => $newname [TOTAL: $counter]");
    }
}

File::Find::find(\&wanted, @directories);

anonymous
()
Ответ на: комментарий от anonymous

Не работает. Я это запускаю:
#!/usr/bin/perl

use strict;
use warnings;

use File::Find ();
use File::Copy ();

our @directories = qw(/home/andrei/muz /home/andrei/muz/mp3);
our $counter = 0;

sub wanted {
    if (/\.wav$/) {
        my $newname = $_;
        $newname =~ s/\.wav$/\.mp3$/;
        File::Copy::move($_, $newname);
        ++$counter;
        print("$_ => $newname [TOTAL: $counter]");
    }
}

File::Find::find(\&wanted, @directories);


А оно мне в ответ:
Final $ should be \$ or $name at ./pereim line 15, within string
syntax error at ./pereim line 15, near "=~ s/\.wav$/\.mp3$/"
Execution of ./pereim aborted due to compilation errors

mr ★★
() автор топика
Ответ на: комментарий от mr

А, всё,понял. Просто лишний $ после mp3 стоял. Просто я в перле ни фига не понимаю. В общем спасмбо за помощь, уважаемый Ананимус!

mr ★★
() автор топика

mc тупо переименовывает.. сам вчера такое делал.

shTigrits ★★
()
Ответ на: комментарий от mr

За что уважаю перлистов, так это за то, что для каждой простой операции они пишут программу, отлаживают ее и выдают под гну :)))

shTigrits ★★
()

for i in $(ls *.wav); do mv $i `basename $i .wav`.mp3; done

Zert
()
Ответ на: комментарий от shTigrits

shTigrits (*) (29.07.2004 4:24:14)

неее, моя прога под BSD-style лицензией:)

несплю почти двое суток - вот и $ невпопад написал:) простите великодушно

первый анонимуз

anonymous
()

К сведению перлистов: есть такая прога на перле - rename зовётся.

watashiwa_daredeska ★★★★
()

ставишь винду и пишешь ren *.wav *.mp3

anonymous
()

Потрясающе. rename .wav .mp3 *.wav

mr ★★
() автор топика

find . -name '*.wav' -print0 | xargs -0 -n 1 sh -c 'echo mv "$1" "${1%.wav}".mp3' xxx

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.