Eu acho que você está entendendo errado o significado da âncora de linha de carat ( ^
) - isso não significa 'procure por um padrão começando com o seguinte regex', significa 'procure por uma linha começando com o seguinte padrão '- que obviamente não irá combinar com nenhum dos seus nomes de arquivos listados, porque o 001 ... 003 vem a meio do nome. / p>
O que você provavelmente está pensando são as construções de lookaround do Perl - por exemplo, para limitar sua correspondência à parte do nome após a primeira sequência de 3 dígitos, você pode usar um (?<=\d{3})
< em> lookbehind . Da mesma forma, para limitar a correspondência à parte antes do sufixo .cbr
, você poderia usar o lookaheaad (?=\.cbr)
. Por fim, você pode corresponder qualquer caractere entre o lookbehind e o lookahead, ou seja, .*
e substituí-los por nada:
$ rename -nv 's/(?<=\d{3}).*(?=.cbr)//' *.cbr
Injustice - Gods Among Us 001 (2013) (Digital) (K6 of Ultron-Empire).cbr renamed as Injustice - Gods Among Us 001.cbr
Injustice - Gods Among Us 002 (2013) (Digital) (K6 of Ultron-Empire).cbr renamed as Injustice - Gods Among Us 002.cbr
Injustice - Gods Among Us 003 (2013) (Digital) (K6 of Ultron-Empire).cbr renamed as Injustice - Gods Among Us 003.cbr
Note que normalmente há várias maneiras diferentes de combinar e renomear um determinado conjunto de arquivos. Não sei se isso é o mais eficiente ou robusto, no entanto, espero que ele ilustre o que eu penso que você era. atirando para.