[Ubuntu-PT 9765] Re: comando seed com variáveis
Luis
luismalaca gmail.com
Sexta-Feira, 19 de Outubro de 2012 - 21:02:54 UTC
Em 19-10-2012 12:23, Paulo J. S. Pinhal escreveu:
> Em 15-10-2012 22:19, Luis escreveu:
>> Em 15-10-2012 14:00, Paulo J. S. Pinhal escreveu:
>>> Em 12-10-2012 23:50, Luis escreveu:
>>>> Em 12-10-2012 23:32, Paulo J. S. Pinhal escreveu:
>>>>> boa noite a todos.
>>>>> através do comando sed, quero adicionar num ficheiro (neste caso
>>>>> f1.txt) uma linha após de texto (cujo conteúdo está na em
>>>>> $variavel) após qualquer linha que apresente, por exemplo,
>>>>> PALAVRA. estou usando o exemplo abaixo, mas não funciona. alguém
>>>>> me pode ajudar?
>>>>> sed '/PALAVRA/{p;s/.*/'$variavel'/;}' Comus.xml > f1.xml
>>>>>
>>>>> desde já meus agradecimentos.
>>>>>
>>>> Só uma pergunta: se o script começa com o parentesis, porque razão
>>>> a declaração começa com apóstrofo? Atenção, é só uma dúvida.
>>>>
>>>> Luis
>>>>
>>> E meu muito obrigado por V/ respostas.
>>> Sempre achei o sed com um "aspeto" muito sombrio... resolvi criar o
>>> programa pretendido em python. muito mais simples...
>>>
>> Só por curiosidade, gostava de ver esse script em python.
>>
>> cumps Luis
>>
> Bom dia.
> O script que fiz em Python (por achar que em bash é demasiado
> complicado) serviu para adaptar pistas do jogo Torcs para o Speed
> Dreams, que baixei de http://trackgen.pierlucalanzi.net/.
> O código é o seguinte:
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import os
> from commands import *
> import string
>
> def Lista_de_Pastas():
> pastas= getoutput('ls').split("\n")
> auxiliar= []
> for p in range(0, (len(pastas)-1)):
> if not "." in str(pastas[p]):
> auxiliar.append(str(pastas[p]))
> return auxiliar
> #FIM def Lista_de_Pastas():
>
> def Dados_da_Pista(_pista):
> lista= _pista.split("-");
> cidade= lista[0];
> categoria= "road-"+lista[-1]
> return cidade, categoria
> #FIM def Dados_da_Pista(_pista):
>
> def Converte(_pista):
> auxiliar= _pista+".png"
> os.rename(auxiliar, "outline.png")
> os.rename("track.png", auxiliar)
> os.remove("convert_to_speeddreams.bat")
> os.remove("convert_to_speeddreams.sh")
> #FIM def Converte(_pista):
>
> def Altera_XML(_pista):
> str_de_referencia= "<attnum name=\"version\" val=\"4\" />"
> str_a_inserir= "<attnum name=\"sky version\" val=\"1\" />"
> cidade, categoria= Dados_da_Pista(_pista)
> arquivo=_pista+".xml"
>
> fp = open(arquivo, 'r')
> conteudo1 = fp.read()
> fp.close()
>
> fp = open(arquivo, 'w')
> conteudo2 = conteudo1.replace("\""+_pista+"\"", "\""+cidade+"\"")
> conteudo1 = conteudo2.replace("\"road\"", "\""+categoria+"\"")
> conteudo2 = conteudo1.replace(str_de_referencia,
> str_de_referencia+"\n "+str_a_inserir)
> fp.write(conteudo2)
>
> fp.close()
> #FIM def Altera_XML(_pista):
>
> def Fala(_texto):
> _texto="espeak -a 150 -b 1 -g 10 -s 150 -v pt-pt " + _texto
> os.system(_texto);
>
> def Executa():
> pastas= Lista_de_Pastas()
> for pasta in pastas:
> print "Convertendo a pasta: "+pasta
> os.chdir(str(pasta))
> Converte(pasta)
> Altera_XML(pasta)
> for ficheiro in os.listdir("."):
> os.chmod(ficheiro, 0644); #644
> os.chdir("..")
> os.chmod(pasta, 0755); #755
> print "Conversão terminada."
> #FIM def Executa():
>
> Executa()
>
> Faço notar que esta foi minha primeira experiência com Python.
>
>
>
Obrigado Paulo
cumps Luis
Mais informações acerca da lista ubuntu-pt