Renomeia vários arquivos para remover o sufixo comum dos nomes de arquivos

4

Eu tenho um diretório (usuário Linux) com um número de arquivos que contém um [!] adicionado ao final de cada nome de arquivo para que cada arquivo seja lido como:

  • foo alguma coisa [!]. zip
  • bar algo [!]. zip
  • helloworld [!]. zip
  • etc.

Qual é a maneira mais rápida de renomeá-los em lote para remover a combinação de caractere final [!] desses nomes de arquivo?

    
por jmreicha 18.09.2011 / 05:24

2 respostas

4

Você pode usar a ferramenta rename como esta

rename 's/\ \[\!\]//' *.zip

Eu recomendo que você primeiro adicione a opção -n , o que faz com que rename mostre apenas o que ele fará, mas não renomeie nenhum arquivo.

rename -n 's/\ \[\!\]//' *.zip

Observe que isso só removerá a primeira ocorrência de [!] no nome do arquivo, somente se for precedida por um espaço, e independentemente de estar no final do nome do arquivo ou não.

sintaxe básica de rename :

rename 's/from/to/' filenames

substituirá from por to em todos os nomes de arquivo.

aqui está uma explicação detalhada: link

note que existem dois comandos rename : um do pacote util-linux e um do pacote perl. o comando a que me refiro acima é a variante perl. a variante perl é muito mais popular e útil. geralmente, quando as pessoas falam sobre rename , elas significam a variante do perl.

no debian (e, portanto, no ubuntu) rename é a variante perl por padrão. link

no arch linux rename é a variante util-linux, enquanto perl-rename é a variante perl. link

veja como você pode ver qual versão está usando:

$ rename --version
rename from util-linux 2.30.1
$ perl-rename --version
perl-rename 1.9
    
por 18.09.2011 / 08:00
1

A maneira mais fácil pode ser usar o gerenciador de arquivos do Krusader e a ferramenta Multi Rename.

Isso permitirá que você renomeie vários arquivos, mesmo recorrendo à estrutura de diretórios.

    
por 18.09.2011 / 07:42