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