shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] numerar arquivo mp3


From: Felipe Kellermann
Subject: Re: [shell-script] numerar arquivo mp3
Date: Sun, 27 Jul 2003 05:23:06 -0300 (BRT)

On Sun, 27 Jul 2003 6:04am  -0000, jota_fenix wrote:

> Tenho que gerar vários arquivos wav01.ccda.mp3
> Gostaria de renomear os arquivos sempre com a continuação da
> numeração anterior
> do tipo musica001.mp3 ate musica006.mp3
> e quando tivesse que gerar novos mp3 a numeração continuasse de onde
> parou
> tipo musica007.mp3 em diante

        Um diretório de teste, 4 arquivos, um alias para gerar o nome:

$ d && type p
musica001.mp3  musica002.mp3  musica003.mp3  musica004.mp3
p is aliased to `printf musica%03d.mp3 `v|wc -l`'

        Criamos 3 arquivos de teste e copiamos, assim:

$ touch /tmp/wav0{1,2,3}.cdda.mp3
$ for i in !!:*; do mv $i `p`; done
`/tmp/wav01.cdda.mp3' -> `musica005.mp3'
`/tmp/wav02.cdda.mp3' -> `musica006.mp3'
`/tmp/wav03.cdda.mp3' -> `musica007.mp3'

        A idéia é esta. No script especifica o local, procura no local
para ver quantos arquivos já estão na lista. Mas e a soma? Não precisa
somar nada, nós usamos vdir/v (ls -l -b), uma linha extra já nos ajuda
bastante. Podemos fazer sem usar o `ls' também, fica melhor. Mas vamos
resumir tudo: funciona muito bem na shell, mas apenas como uma idéia:
$ cat junta # usa: junta <diretório destino> <arq1 [arq2...]>
#!/bin/sh
d=$1 # e se ficar maior, usar contadores e mudar um pouco
p(){ printf musica%03d.mp3 `echo a $1/*|wc -w`; } # não tinha \ ! :-)
[ "$#" -ge "2" ] && [ -d "$1" ] && shift || exit
while [ "$1" ]; do mv -v "$1" "$d/`p $d`" && shift; done

-- 
Felipe Kellermann


reply via email to

[Prev in Thread] Current Thread [Next in Thread]