Estou supondo que você tenha arquivos como
[a-s]_dragon_ball_-_001_-_the_secret_of_the_dragon_balls__rs2_[4FC1375C]
[a-s]_dragon_ball_-_002_-_the_emperors_quest__rs2_[59F9C743]
[a-s]_dragon_ball_-_003_-_the_nimbus_cloud_of_roshi__rs2_[0C592F5F]
[a-s]_dragon_ball_-_004_-_oolong_the_terrible__rs2_[47CE4923]
[a-s]_dragon_ball_-_005_-_yamcha_the_desert_bandit__rs2_[B6A035BF]
esses arquivos têm [a-s] no começo. E você os quer após renomear como (de acordo com seu comentário)
001_-_the_secret_of_the_dragon_balls
002_-_the_emperors_quest
003_-_the_nimbus_cloud_of_roshi
004_-_oolong_the_terrible
005_-_yamcha_the_desert_bandit
Use este script abaixo,
#!/bin/bash
for file in [\[a\-s\]]*
do
newfile='echo "$file" | sed -r "s/^.{20}//" | awk -F "__rs2" '{print $1}''
mv $file $newfile
done
Como funciona
Este script varre todos os nomes de arquivos no diretório atual que começa com "[a-s]". Em seguida, dentro de loop para cada nome de arquivo varrido, o script cria um novo nome de arquivo, deixando os primeiros 20 caracteres filtrados por sed
e cortando a parte que começa com a string "__rs2". Isso remove partes indesejadas do nome. E, por fim, os arquivos são renomeados para o novo nome de arquivo, um por um.
Uso
Salve o código como rename_file.sh
. (diga) Em seguida, coloque-o no mesmo diretório onde estão todos esses arquivos. Dê a permissão de execução de script. Escreva no terminal,
chmod +x rename_file.sh
Finalmente, para renomear os arquivos, basta escrever no terminal
./rename_file.sh
Feito.