Re: Comando para substituir nome arquivo sem perder a numeração"
Faltaram aspas. Faltaram umas barras tipo \ antes dos colchetes no
comando sed. Tipo \[ e \]. Compare.
Eu criei arquivos fictícios com touch e testei. Funcionou.
O que funcionou aqui 'ipsis litteris' é
cd DIRETORIO
for NOMEVELHO in *.mkv;
do
NOMENOVO=$(echo "$NOMEVELHO" | sed 's/\[Hacchi Fansub\]_//g')
mv "$NOMEVELHO" "$NOMENOVO"
done
Obedeça cada aspa simples e dupla.
Em Thu, 28 May 2015 02:58:08 -0300
Carlos Donizete <coringao@riseup.net> escreveu:
> Desculpe minha ignorância, não entendo muito em scripts, mas vou te
> passar mais ou menos que entendi o que me explicou.
>
> ---
> coringao@debian:~$ cd teste/
> coringao@debian:~/teste$ cat converte.sh
> #!/bin/bash
>
> for Gintama in *.mkv; do
>
> Gintama=$(echo -n $['Hacchi Fansub']_Gintama | sed 's/\['Hacchi
> Fansub'\]_//g')
>
> mv $ [Hacchi Fansub]_Gintama $Gintama
>
> done
>
> ---
> coringao@debian:~/teste$ ls
> converte.sh [Hacchi Fansub]_Gintama_223-HD.mkv
> [Hacchi Fansub]_Gintama_221-HD.mkv [Hacchi Fansub]_Gintama_224-HD.mkv
> [Hacchi Fansub]_Gintama_222-HD.mkv
>
> ---
> Dentro deste diretório "teste" coloquei 4 episódios do meu desenho
> favorito para testar. :)
>
> Como faço para que estes arquivos fica somente:
>
> Gintama_(numero-do-episodio).mkv
>
> Quando executei o script deu este erro:
>
> ---
> coringao@debian:~/teste$ ./converte.sh
> ./converte.sh: line 5: 'Hacchi Fansub': syntax error: operand expected
> (error token is "'Hacchi Fansub'")
> sed: -e expressão #1, caractere 10: Comando `s' inacabado (s/// -
> faltou delimitador)
> mv: o alvo “Fansub]_Gintama” não é um diretório
> sed: -e expressão #1, caractere 10: Comando `s' inacabado (s/// -
> faltou delimitador)
> ./converte.sh: line 5: 'Hacchi Fansub': syntax error: operand expected
> (error token is "'Hacchi Fansub'")
> mv: o alvo “Fansub]_Gintama” não é um diretório
> ./converte.sh: line 5: 'Hacchi Fansub': syntax error: operand expected
> (error token is "'Hacchi Fansub'")
> sed: -e expressão #1, caractere 10: Comando `s' inacabado (s/// -
> faltou delimitador)
> mv: o alvo “Fansub]_Gintama” não é um diretório
> ./converte.sh: line 5: 'Hacchi Fansub': syntax error: operand expected
> (error token is "'Hacchi Fansub'")
> sed: -e expressão #1, caractere 10: Comando `s' inacabado (s/// -
> faltou delimitador)
> mv: o alvo “Fansub]_Gintama” não é um diretório
> coringao@debian:~/teste$
>
> ---
>
> Obrigado!
>
>
> Em Qui, 2015-05-28 às 02:15 -0300, Listeiro 037 escreveu:
> > Algo como:
> >
> > for VELHONOME in *.mkv; do
> >
> > NOVONOME=$(echo -n $VELHONOME | sed 's/\[Hacchi Fansub\]_//g')
> >
> > mv $VELHONOME $NOVONOME
> >
> > done
> >
> > Geralmente eu faço esse tipo de coisa direto em linha de comando e
> > vai direto no BASH por tentativa e erro. É algo mais ou menos
> > assim. Crie um diretório de teste, coloque uns quatro arquivos lá e
> > teste esse projeto de script. Se der certo com os quatro dará certo
> > com todo o padrão.
> >
> >
> > Em Thu, 28 May 2015 02:05:59 -0300
> > Carlos Donizete <coringao@riseup.net> escreveu:
> >
> > > Olá,
> > >
> > > Curto muito animes e muitos destes arquivos que faço downloads
> > > contem caracteres especiais ou são bem extensos os nomes.
> > >
> > > Gostaria de saber um comando que consiga substituir o nome do
> > > arquivo em sequencia sem perder a numeração. Tipo num diretório
> > > contem uns 4 episódios.
> > >
> > > coringao@debian:~$ cd teste/
> > > coringao@debian:~/teste$ ls
> > > [Hacchi Fansub]_Gintama_221-HD.mkv [Hacchi
> > > Fansub]_Gintama_223-HD.mkv [Hacchi Fansub]_Gintama_222-HD.mkv
> > > [Hacchi Fansub]_Gintama_224-HD.mkv
> > >
> > > Qual o comando certo para deixa-los exemplo deste modo:
> > >
> > > coringao@debian:~/teste$ ls
> > > Gintama_221.mkv Gintama_223.mkv
> > > Gintama_222.mkv Gintama_224.mkv
> > >
> > > Obrigado e ate mais!
> >
> >
>
Reply to: