Obtenha o utilitário de renomeação do Perl em vez da renomeação interna

Muitos sites (incluindo vários artigos de SO) falam sobre o uso de "renomear" usando expressões Perl para renomear arquivos.

Isso seria perfeito, mas aparentemente esse não é o utilitário de renomeação que eu tenho, e nenhum desses artigos parece compreender que existem várias versões de "renomear" e não consigo encontrar onde obter a versão que aceita expressões Perl.

Como colocar minhas mãos no utilitário de renomeação mais poderoso mencionadoaqui, aquieaqui?

Estou executando o Fedora 20. Meu comando de renomeação atual é doutil-linux pacote e, aparentemente, eu preciso da versão Perl, que é melhor.

 devnull22 de mar de 2014 13:47
Se você possui perl, ele deve estar disponível comoprename também.
 WorldsEndless22 de mar de 2014 13:50
@devnull Eu tenho perl, masman prename, prenameesudo yum search prename todos voltam de mãos vazias.
 WorldsEndless22 de mar de 2014 14:07
Eu baixei o script, corrigi quebras de linha inseridas e o usei; funciona corretamente. Eu estaria disposto a marcar 'respondido' se alguém pudesse fazer um download limpo (existe um com uma página de manual?) E como usá-lo globalmente em vez de escrever meu próprio apelido para encontrar um arquivo perl que eu colei em algum lugar.
 Prix22 de mar de 2014 13:52
O script em si pode ser encontrado emperlmonks.org/?node_id=303814
 rocarvaj31 de out de 2017 17:46
Caso você não tenha acesso root na sua máquina, aqui está uma lista com o script (quebras de linha necessárias corrigidas, como mencionado por @WorldsEndless):gist.github.com/rocarvaj/6abf7dd1e083963a596430ac43f88e34

questionAnswers(4)

Eu tive que fazer o seguinte:

# In bash
sudo yum install perl-CPAN
sudo cpan

# In CPAN shell
install Module::Build
install File::Rename

.deb) distros, recomendo @ SzG'sresponda.

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

# Install (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 )

# Cleanup
rm -rf "rename-1.9"

Nota:

INSTALL_BASE pode ser configurado para modificar o diretório de instalação base.

por exemplo. perl "Makefile.PL" INSTALL_BASE=/usr/local

fonte

QuestionSolution

/usr/bin/rename.ul deutil-linux pacote (daí o sufixo .ul)/usr/bin/prename deperl pacote

O realrename comando funciona via o/etc/alternatives mecanismo pelo qual

/usr/bin/rename é um link simbólico para/etc/alternatives/rename/etc/alternatives/rename é um link simbólico para/usr/bin/prename

O mesmo problema está me incomodando no Cygwin, que é um produto Red Hat, portanto deve ser mais semelhante ao Fedora. Vou dar uma olhada no laptop da minha empresa na segunda-feira. E lembro que o renomear Perl havia trabalhado lá algumas vezes. Provavelmente antes de instalarutil-linux.

Se você instalar o Perl-rename para/usr/local/bin terá precedência sobrerename deutil-linux. O mesmo vale para a página de manual quando instalada em/usr/local/share/man/man1/.

Acabei de criar um pacote Perl renomeado separado no Github:https://github.com/subogero/rename

 SzG22 de mar de 2014 20:43
Adicionado ao README.
 SzG23 de mar de 2014 10:17
Isso é incrível. E Cygwin é o software mais confiável do Windows há anos. :-)
 WorldsEndless22 de mar de 2014 18:12
Parece ótimo. Se você apenas adicionar uma linha, acho que a resposta estará completa: como instalar o seu pacote git (apenas uma linha sobre "sudo make"). Obrigado!
 Warren Young23 de mar de 2014 10:04
Cygwin, Red Hat possui os direitos autorais no núcleocygwin1.dll mas paga apenas um desenvolvedor em tempo integral para trabalhar no Cygwin, e ela (Corinna Vinschen) não trabalha no Cygwin Perl. A grande maioria do trabalho do Cygwin é feita por voluntários da comunidade, e eles não são limitados na tomada de decisões para combinar com o Fedora. Cygwin Perlé atualmente mantido por várias pessoas, nenhuma das quais é paga pela Red Hat para trabalhar no Cygwin. (Eric Blake, funcionário da Red Hat, mantém operl-error , mas ele declarou publicamente que seu trabalho com Cygwin está fora do relógio.)
 Warren Young23 de mar de 2014 10:35
Se você quisesse contribuir com umperl-rename pacote, eu apoiaria. Você também notará meu nome na lista de mantenedores de pacotes Cygwin. E não, não quero criar esse pacote. Minha escolha pessoal para renomear sofisticados - quando as linhas de uma linha do Bash não são apropriadas - émmv e quase nunca preciso usá-lo.

cpan, que é o repositório perl semelhante ao pip para python.

Aqui está umtutorial em usar cpan.

Se você tentar renomear, ele se parece com isso

renomear --help
chamada: renomear de para arquivos ...

Para instalar o perl rename, você pode fazer o seguinte. Pode ser necessário instalar algumas dependências; geralmente, basta pressionar Enter

cpan
cpan1> instalar Arquivo :: Renomear
CPAN: armazenável carregado ok (v2.20)
Vai ler '/root/.cpan/Metadata'
O banco de dados foi gerado em quarta-feira, 30 de setembro de 2015, 08:17:02 GMT
Executando a instalação do módulo 'File :: Rename'
....
Executando a instalação do Build
Instalando /usr/local/share/man/man1/rename.1
Instalando /usr/local/share/perl5/File/Rename.pm
Instalando /usr/local/share/man/man3/File::Rename.3pm
Instalando / usr / local / bin / rename
Gravando /usr/local/lib64/perl5/auto/File/Rename/.packlist
RMBARKER / Renomear arquivo-0.20.tar.gz
Instalação do ./Build - OK

É assim que você instalaria a renomeação do cpan.
O próximo é fazê-lo funcionar 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/usr/bin/ mas com um nome ligeiramente diferente para garantir que não quebrei nenhum script / programa existente, dependendo do antigo.

ln -s /usr/local/bin/rename /usr/bin/rename.pl
 Edson Horacio Junior08 de nov de 2016 14:43
Essa instrução cpan salvou minha vida, obrigado! +1
 Pysis11 de nov de 2016 04:42
Atésudo cpan e a instalação não me deu esse script. Fedora 24. É porque eu já instalei a resposta do GitHub? Eu tinha desinstalado isso e também referenciado diretamente/usr/bin/rename, mas não recebeu esta versão 'superalimentada'.
 林果皞23 de mar de 2016 17:26
Para o meu caso, eu precisosudo cpan.

yourAnswerToTheQuestion