Você está perto, mas esqueceu (?) para colocar $
na expansão da variável, tente:
for f in *01x*; do mv -v -- "$f" 'Series Title S01 E'"${f#*01x}"; done
Observe as aspas simples no arquivo de destino devido a espaços no nome do arquivo.
Eu tenho uma série de arquivos de mídia que estou tentando renomear em massa.
001 - 01x01 - mediaTitle1.avi
002 - 01x02 - mediaTitle2.avi
003 - 01x03 - mediaTitle3.avi
O que eu gostaria é de produzir:
Series Title S01 E01 - mediaTitle1.avi
Series Title S01 E02 - mediaTitle2.avi
Series Title S01 E03 - mediaTitle3.avi
Estou tentando isso:
for f in *01x*; do echo mv -v "$f" "Series Title S01 E{f#1}"; done
Mas está falhando. Então eu quero manter o final do arquivo e substituir o início de cada arquivo
Você está perto, mas esqueceu (?) para colocar $
na expansão da variável, tente:
for f in *01x*; do mv -v -- "$f" 'Series Title S01 E'"${f#*01x}"; done
Observe as aspas simples no arquivo de destino devido a espaços no nome do arquivo.
cd /path/to/avidir; mkdir ../avidir2
pax -rwls '|.* - \(..\)x\(.. - \)|Series Title S E|' *.avi ../avidir2
O comando acima criará hard-links para todos os seus arquivos em outro diretório. Isso permite que você verifique se todas as alterações estão satisfatórias antes de remover os arquivos com nomes indesejados.
Tags rename