pode mmv renomear arquivos incrementando um índice?

0

O mmv, um utilitário de movimentação em massa, pode renomear arquivos de:

  • foo.txt
  • bar.txt
  • baz.txt

para:

  • 1.txt
  • 2.txt
  • 3.txt

A página man é intrigante, mas não consigo seguir as instruções:

   Rename all *.jpeg files in the current directory to *.jpg:

  mmv '*.jpeg' '#1.jpg'

A variável #1 pode ser definida como um número inteiro que é incrementado? Embora não duvide que isso seja possível, é igualmente fácil (ou difícil) usar apenas um script ou outro script?

Ignorando o possível problema de sobrescrever 1.txt para simplificar. Ou copie para um subdiretório.

veja também:

link

link

Renomeie os arquivos incrementando um número dentro do nome do arquivo

    
por Thufir 16.02.2016 / 09:23

1 resposta

0

Eu não tenho esse programa no meu sistema - na verdade, eu não me lembro especificamente de ouvir isso antes - mas eu li esta cópia da página man , e parece que o programa não inclui a funcionalidade que você deseja. No entanto, se você quiser fazer isso com mmv , você pode querer tentar isto:

mmv -an "*.txt" bogus.target > /tmp/mmv.list

O -n indica mmv para não fazer nenhum movimento mas apenas para relatar o que teria feito se você não tivesse especificado -n . O -a diz para anexar todos os arquivos de texto no arquivo bogus.target - na verdade, a página man dá um exemplo muito semelhante (mas sem a opção -n ) - Eu uso aqui simplesmente para convencer mmv para permitir que vários arquivos de origem colidam em um único destino. Isso deve produzir um arquivo /tmp/mmv.list parecido com

bar.txt -> bogus.target
baz.txt -> bogus.target
foo.txt -> bogus.target

(suponho que listará os arquivos seja em ordem lexicográfica (alfabética), ou ordem de diretório (que pode parecer ser uma ordem arbitrária). Se você quiser alguma outra ordem, você precisará encontrar uma maneira de especificar isso.) Em seguida, processe o arquivo (por exemplo, com um script, TBD) para substituir as ocorrências de bogus.target com 1.txt , 2.txt , 3.txt , etc. Então execute

mmv < /tmp/mmv.list

Advertências: Eu não tentei isso (já que, como eu disse, eu nem tenho o software). Você provavelmente deve fazer uma corrida seca primeiro em alguns arquivos sem importância, e / ou backup de todos os seus arquivos antes de fazer isso.

Note também que isto é provavelmente pelo menos tanto trabalho como algumas das respostas às perguntas que você vinculou. Como eu disse, eu ofereço essa sugestão apenas no caso de você querer fazer isso com mmv .

P.S. Minha resposta (acima) foi parcialmente inspirada por este .

    
por 16.02.2016 / 12:31