Renomear em massa, alterar sufixo?

Renomear em massa, alterar sufixo?

Como posso substituir em massa o sufixo de muitos arquivos?

Eu tenho muitos arquivos como

  • NameSomthing-min.png
  • NameSomthing1-min.png
  • NameSomthing2-min.png

Eu gostaria de mudar todos eles para

  • NameSomthing.png
  • NameSomthing1.png
  • NameSomthing2.png

ou seja, remova os caracteres -mindo nome. Como eu faria isso?

Responder1

Este script pode ajudar:

for file in *-min.png; do
    echo mv "$file" "${file%-min.png}.png"
done

Remova o eco para realmente executar o comando.

Responder2

Isso depende da sua concha. Eu uso zshe é assim que faço:

for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done

Aconselho verificar a página de manual do seu shell e uma seção semelhante a "expansão de parâmetros" (como é chamada nozshpágina de manual).

Soluções semelhantes bashtambém estão disponíveis para outros shells (você não especificou qual usar).

Observe que sua solução específica sempre depende dos dados e do seu objetivo. se você tiver o '-' como separador entre o nome e o sufixo do qual deseja se livrar, este é o caminho a seguir. Caso contrário, você pode querer adaptar um pouco a expansão dos parâmetros.

informação relacionada