[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