renomeia o arquivo com zmv

5

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 :))

    
por Yannick Schall 14.03.2012 / 12:56

3 respostas

2

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.

    
por 14.03.2012 / 13:04
2

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

    
por 01.10.2016 / 07:33
0

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.

    
por 01.03.2015 / 10:50