Você não está autenticado.

Anúncio

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.

Para mais informações: contato at archlinux-br.org.

#1 28/01/2009 22:57:05

Alexdsan
Membro
Registrado: 10/06/2007
Mensagens: 110

[resolvido]Script para renomear em lote

Dai galera, alguém ai teria um script para renomear em lote, no caso eu queria retirar a duplicidade no nome de alguns arquivos:

]$ ls | grep '(2)'
3x5.flf (2)
4max.flf (2)
5lineoblique.flf (2)
B1FF.flf (2)
DANC4.flf (2)
Georgia11.flf (2)
ICL-1900.flf (2)
acrobatic.flf (2)
alligator.flf (2)
alligator2.flf (2)
alligator3.flf (2)
alpha.flf (2)
alphabet.flf (2)
amc3line.flf (2)
amc3liv1.flf (2)

Retirar os itens:

\ \(2\)

vlw

Última edição por Alexdsan (30/01/2009 04:06:30)


Arch Linux x86_64 =)

Offline

#2 29/01/2009 10:25:05

nunolopes
Membro
De: Aracaju, Brasil
Registrado: 11/02/2008
Mensagens: 98

Re: [resolvido]Script para renomear em lote

Vc quer renomear para o q? Ou quer apagar esses duplicados?

Explique exatamente o que vc quer smile

[]'s
Nuno Lopes

Offline

#3 29/01/2009 10:54:23

nunolopes
Membro
De: Aracaju, Brasil
Registrado: 11/02/2008
Mensagens: 98

Re: [resolvido]Script para renomear em lote

Bem,

Adiantando já alguma coisa...

Ao invés de um script, pode usar o comando find deste modo (exemplo dando um ls, basta substituir por mv do modo que precisar) :

find . -name "*(2)" -type f -exec ls {} \;

[]'s
Nuno Lopes

Offline

#4 29/01/2009 17:34:20

Alexdsan
Membro
Registrado: 10/06/2007
Mensagens: 110

Re: [resolvido]Script para renomear em lote

nrcl escreveu:

Vc quer renomear para o q? Ou quer apagar esses duplicados?

Explique exatamente o que vc quer smile

[]'s
Nuno Lopes

Achei um pack de fontes flf que estava zipado, mas sem a extensão .zip, extrai e gerou no nome dos arquivos o (2) para não ficar com o arquivo igual.

O problema que o programa figlet não reconhece a fonte, ja que vc usa o comando:

figlet -f nome_da_fonte texto

Ele busca o nome_da_fonte.flf na pasta /usr/share/figlet/fonts/ dai não encontra, ja que não esta com este nome apenas.

PS: não tem como eu colocar o nome completo do arquivo, ja que o programa acrescenta a extensão no final na hora da execução.


Arch Linux x86_64 =)

Offline

#5 29/01/2009 18:42:24

nunolopes
Membro
De: Aracaju, Brasil
Registrado: 11/02/2008
Mensagens: 98

Re: [resolvido]Script para renomear em lote

Bem

Se eu entendi a sua mensagem, algumas fontes já existiam, daí a duplicidade, certo? smile

Se for este o caso, bastará remover as duplicadas.

Voltamos ao comando find :

find . -name "*(2)" -type f -exec rm -f {} \;

[]'s
Nuno Lopes

Offline

#6 29/01/2009 19:39:40

Alexdsan
Membro
Registrado: 10/06/2007
Mensagens: 110

Re: [resolvido]Script para renomear em lote

Se eu entendi a sua mensagem, algumas fontes já existiam, daí a duplicidade, certo? smile

Se for este o caso, bastará remover as duplicadas.

No nome sim, mas no arquivo não.

Tipo assim, o arquivo "1row.flf" estava compactado com o nome de "1row.flf", dai quando eu extrai gerou a duplicidade no nome, mas não em relação ao arquivo.

PS: Deu erro com o comando mv

find . -name "*(2)" -type f -exec mv {} \;
mv: operando de ficheiro de destino em falta após `./contrast.flf (2)'
Tente `mv --help' para mais informação.

Arch Linux x86_64 =)

Offline

#7 30/01/2009 02:43:19

snooze
Membro
Registrado: 05/08/2008
Mensagens: 3

Re: [resolvido]Script para renomear em lote

$ for arquivo in *\ \(2\) ; do
> novo="`echo $arquivo | sed s/\ \(2\)//g`"
> mv "$arquivo" "$novo"
> done

Isso deve resolver.

Boa sorte

Offline

#8 30/01/2009 04:06:13

Alexdsan
Membro
Registrado: 10/06/2007
Mensagens: 110

Re: [resolvido]Script para renomear em lote

snooze escreveu:

$ for arquivo in *\ \(2\) ; do
> novo="`echo $arquivo | sed s/\ \(2\)//g`"
> mv "$arquivo" "$novo"
> done

Isso deve resolver.

Boa sorte

Perfeito, obrigado pela ajuda de todos.

vlw


Arch Linux x86_64 =)

Offline

#9 30/01/2009 10:43:02

nunolopes
Membro
De: Aracaju, Brasil
Registrado: 11/02/2008
Mensagens: 98

Re: [resolvido]Script para renomear em lote

O que coloquei é só para ilustrar como fazer.... O que precisa é indicar para o que quer mover smile

Ou seja, mv {} para alguma coisa (sendo o "{}" o nome original do arquivo).

A sintax do mv é :

mv arquivooriginal arquivooutronome

[]'s
Nuno Lopes

Offline

Rodapé do site