Como instalar o regexp habilitado 'rename' no fedora?

7

Eu tenho uma tarefa de renomeação em lote e acho que o comando 'rename' no Ubuntu e no Fedora é diferente.

No Ubuntu, renomear é escrito em Perl e tem suporte a expressões regulares. Existe alguma maneira de instalá-lo no Fedora?

    
por Ning Sun 26.06.2011 / 14:35

4 respostas

1

O script Perl (do próprio Larry Wall) é chamado rename.pl

Você precisará salvá-lo no diretório adequado. Provavelmente /usr/local/bin/ e verifique se é executável, digitando

sudo chmod +x /usr/local/bin/rename.pl
    
por 26.06.2011 / 15:21
4

Você pode instalá-lo usando o cpan , que é o repositório perl semelhante ao pip para python.

Aqui está um tutorial usando cpan.

Se você tentar renomeá-lo, será assim

rename --help
call: rename from to files...

Para instalar a renomeação perl, você pode fazer o seguinte. Você pode precisar instalar algumas dependências, você pode geralmente apenas inserir enter

cpan
cpan1> install File::Rename
CPAN: Storable loaded ok (v2.20)
Going to read '/root/.cpan/Metadata'
Database was generated on Wed, 30 Sep 2015 08:17:02 GMT
Running install for module 'File::Rename'
....
Running Build install
Installing /usr/local/share/man/man1/rename.1
Installing /usr/local/share/perl5/File/Rename.pm
Installing /usr/local/share/man/man3/File::Rename.3pm
Installing /usr/local/bin/rename
Writing /usr/local/lib64/perl5/auto/File/Rename/.packlist
RMBARKER/File-Rename-0.20.tar.gz
./Build install -- OK

É assim que você instalaria a renomeação do cpan.
A próxima é fazer com que funcione no seu sistema. Como você pode ter mais de um renomear instalado.

which rename  
/usr/bin/rename  

Quando você realmente quer este.

/usr/local/bin/rename --help
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E *perlexpr*]*|*perlexpr*
    [ *files* ]

Options:
    -v, -verbose
            Verbose: print names of files successfully renamed.

    -n, -nono
            No action: print names of files to be renamed, but don't rename.

    -f, -force
            Over write: allow existing files to be over-written.

    -h, -help
            Help: print SYNOPSIS and OPTIONS.

    -m, -man
            Manual: print manual page.

    -V, -version
            Version: show version number.

    -e      Expression: code to act on files name.

            May be repeated to build up code (like "perl -e"). If no -e, the
            first argument is used as code.

    -E      Statement: code to act on files name, as -e but terminated by
            ';'.

Eu apenas coloco em /usr/bin/ , mas com um nome ligeiramente diferente, para ter certeza de que não quebrei nenhum script / programa existente que dependa do antigo.

ln -s /usr/local/bin/rename /usr/bin/rename.pl
    
por 30.09.2015 / 11:42
2

Instale o prename (versão Perl da renomeação):

sudo dnf install prename
    
por 26.09.2017 / 10:38
0

Para distribuições da família Debian ( .deb ), eu recomendo resposta do @SigG no StackOverflow.

Para distros da família RedHat ( .rpm ) (por exemplo, Fedora), se o seu tempo for precioso (como o meu), você pode baixar, compilar e instalar, a partir da fonte via cpan em um comando terse :

# Replace 'rename-1.9' below with another version if desired ;) 
curl -L "http://search.cpan.org/CPAN/authors/id/P/PE/PEDERST/rename-1.9.tar.gz" | tar -xz && ( cd "rename-1.9"; perl "Makefile.PL"; make && make install ) && rm -rf "rename-1.9"

Nota:

INSTALL_BASE can be set to modify the base installation directory.

e.g. perl "Makefile.PL" INSTALL_BASE=/usr/local

source

Nota: Mesma resposta, mas com realce de sintaxe superior no StackOverflow

    
por 18.12.2017 / 23:48