Eu tenho um servidor de mídia com uma pasta chamada Series
. ( /media/Expansion2/Series/
)
Nele, tenho (surpresa!) Séries de TV. Estes são apenas os nomes dos programas, por exemplo,/media/Expansion2/Series/The Big Bang Theory/
Dentro da pasta de cada programa (e é aí que está o problema), tenho pastas de temporada. Atualmente, tenho uma mistura das 2 convenções a seguir (junto com mais algumas, provavelmente):
/media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1
/media/Expansion2/Series/The Big Bang Theory/Season 2
No final, quero renomear todas as pastas para apenas Season #
.
Como regex, eu provavelmente diria algo como s/.*(Season \d)/$1
Aplicável apenas a pastas, não a arquivos. Eu provavelmente também devo mencionar que isso é para cerca de mais de 50 subpastas show, então ele precisa começar no /media/Expansion2/Series/
nível e analisar cada série :)
fonte
rename
no Debian . No Ubuntu (e alguns sabores), a fim de evitar conflitos de nomes com o comando padrão mencionado anteriormente , às vezes (mas nem sempre) é encontrado em . Aqui no Lubuntu, a própria ferramenta é chamada, mas pode ser chamada devido à cadeia de links simbólicos , onde é uma versão ligeiramente modificada do .rename
prename
prename
rename
/usr/bin/rename -> /etc/alternatives/rename -> /usr/bin/file-rename
file-rename
prename
O seguinte trecho retira qualquer coisa que ocorra antes da última ocorrência de
Season [0-9]
em todos os diretórios de exibição em/media/Expansion2/Series
. Não são necessárias expressões regulares, apenas globs.fonte
Se você preferir jogar pelo seguro e renomear apenas
some show/some show stuff
parasome show/stuff
:Se você deseja retirar tudo antes
Season
:${var#PATTERN}
retira PATTERN no início$var
e retorna o resultado.${var%PATTERN}
faz o mesmo no final.${var#PATTERN}
e${var%PATTERN}
remova o menor prefixo e sufixo correspondente, respectivamente;${var##PATTERN}
e${var%%PATTERN}
remova a correspondência mais longa.fonte
Vou postar mais duas soluções na esperança de que possam ser úteis no futuro. Eles vieram dos administradores do Linux no trabalho. Apenas mostra quantos martelos funcionarão nesta unha!
Solução 1:
Solução 2:
fonte