Renomeando vários arquivos adicionando uma sequência ao início


21

Para cerca de 200 arquivos em um diretório, eu gostaria de adicionar a String 1_ao início de todos os nomes de arquivos.

Os nomes de arquivos são, por exemplo, DATASET_X_Y_Ze o resultado deve ser 1_DATASET_X_Y_Z.

Não sei nada sobre scripts da Shell, mas talvez exista um liner para o terminal.



O link @Rinzwind trata de uma questão diferente. A questão Macydanim é sobre como anexar seqüências de caracteres aos nomes de arquivos, não ao conteúdo do arquivo.
jc

Respostas:


38
  • rename 's/^/1_/' * para renomear todos os arquivos no diretório atual

ou

  • rename 's/^/1_/' DATASET*para renomear todos os arquivos no diretório atual começando com DATASETem seus nomes

Explicação: a expressão s/^/1_/diz: "substitua o início do nome do arquivo (que significa este símbolo -> ^) 'por 1_".


Se você renamenão fizer isso imediatamente, precisará instalar prename(renomear PERL).
precisa saber é o seguinte

14

Você pode renomear facilmente todos os arquivos na digitação de diretório atual (supondo que você esteja usando o bash):

for i in *; do mv "$i" 1_"$i"; done

obviamente tome cuidado; ele remanejará TODOS os arquivos no diretório atual que são 'visíveis' (o nome do arquivo não começa com '.')


Esta é a primeira solução correta que encontrei, que pode ser usada para anexar algo como .csvum subconjunto de arquivos, com uma expressão curinga alterada em vez de *. 1
Zelphir Kaltstahl /

Uau! Loops na CLI! Isso é novo. :)
Raymond Wachaga 27/07

9

Você pode usar pyRenamer . Pode ser encontrado no centro de software Ubuntu. insira a descrição da imagem aqui O padrão de arquivo original deve ser {X} e o padrão de arquivo renomeado deve ser 1_ {1}


Um dos meus programas favoritos
Allan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.