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

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: