Como uma questão de expressões regulares (procurar texto por padrões e fazer substituições com base nelas), isso não é difícil; Estou surpreso que não há respostas depois de 15 horas. Eu não sou tão experiente em Perl quanto gostaria, mas uma abordagem direta ao problema entre parênteses é simplesmente detectá-lo depois e corrigi-lo:
$_ =~ s/(\d{4})/($1)/g;
$_ =~ s/(\((\d{4})\))/$1/g;
A segunda instrução procura ((2012))
e retorna os seis caracteres intermediários; isto é, o (2012)
. Quanto às "assinaturas comuns", que tal
$_ =~ s/ \[1080p\] MP4$//;
(Use \[
e \]
para evitar que […]
seja interpretado como um intervalo e $
para se referir ao final da string.