Você deseja adicionar apenas -
ao nome do arquivo? Experimente assim:
zmv -n 'test(*).txt' 'test-${1}.txt'
A opção -n
mostra o que aconteceria sem realmente executar nenhuma ação.
Acabei de descobrir o zmv esta manhã.
Para testar, criei alguns arquivos.
test1.txt test2.txt test3.txt
Estou tentando renomeá-los com zmv Gostaria de obter esta saída:
test-1.txt test-2.txt test-3.txt
quando tento usar curingas, recebo uma mensagem de erro:
zmv '(*)([0-9]{1,})(.txt)' '$1-$2$3'
zmv: error: number of wildcards in each pattern must match
Estou fazendo algo errado (a resposta precisa ser sim :))
Você deseja adicionar apenas -
ao nome do arquivo? Experimente assim:
zmv -n 'test(*).txt' 'test-${1}.txt'
A opção -n
mostra o que aconteceria sem realmente executar nenhuma ação.
Esta é uma resposta extra-ordinariamente tardia, já que também me deparei com esse problema e estava quebrando minha cabeça. Eu finalmente descobri que a camada de personalização do zsh que eu usei (yadr) era o aliasing do zmv. %código%. Acredito que mesmo a popular camada oh-my-zsh faz isso.
Verifique se o seu zmv está com alias. Se assim for, usar alias zmv="noglob zmv -W"
e aquele erro unalias zmv
horrível deve desaparecer agora
Se o primeiro argumento for uma regex, provavelmente o problema é que você usou *
em vez de .*
. ( *
é o operador 0 ou mais, .
corresponde a qualquer caractere único).
Assim, o primeiro paren provavelmente foi interpretado literalmente como o arg do operador *
, em vez de abrir um grupo de captura.
Experimente o link para uma coisa interativa de tutorial / testador / construtor regex.
Tags zsh batch-rename