Substruções de Bash farão:
for i in ?x??*
do
mv "$i" "S0${i:0:1}E${i:2:2}${i:4}"
done
Bash: como renomear em lote os episódios da série de 1x01*
a S01E01*
padrão?
Eu encontrei esta resposta , mas estou bastante perdido em como modificá-lo para o meu caso.
Uma abordagem, usando o comando rename
. Solte o -n
quando estiver satisfeito com as renomeações propostas.
Explicação:
s/
= substituto (\d+)
= corresponde a 1 ou mais dígitos (temporada) x
= corresponde ao caractere "x" (\d+)
= corresponde a 1 ou mais dígitos (episódio) /
= fim da string de pesquisa, início da string substituta S0
= inserir texto "S0" $1
= insere os primeiros dígitos correspondentes de antes (temporada) E
= insere o caractere "E" $2
= insere os segundos dígitos correspondentes de antes (episódio) /
= fim da string substituta -
rename -n -e 's/(\d+)x(\d+)/S0$1E$2/' *
rename(Breaking_Bad_1x01.mkv, Breaking_Bad_S01E01.mkv)
rename(Shameless_3x05.mp4, Shameless_S03E05.mp4)
Você pode fazer isso um por um:
for f in 1x01*; do
n='echo $f | sed 's/^1x01/S01E01/''
mv $f $n
done