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.

macydanim
fonte
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_".

dAnjou
fonte
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 '.')

karlacio
fonte
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}

nickguletskii
fonte
Um dos meus programas favoritos
Allan