[Ubuntu-PT 9772] Re: comando seed com variáveis
Luis
luismalaca gmail.com
Sábado, 20 de Outubro de 2012 - 18:41:27 UTC
Em 20-10-2012 19:27, Paulo Pinhal escreveu:
> Que achaste do script?
> No dia 19 de Out de 2012 22:03, "Luis" <luismalaca gmail.com> escreveu:
>
>> 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/ <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
>>
>>
>> --
>> ubuntu-pt mailing list
>> ubuntu-pt lists.ubuntu.com
>> https://lists.ubuntu.com/**mailman/listinfo/ubuntu-pt<https://lists.ubuntu.com/mailman/listinfo/ubuntu-pt>
>>
Acho que me vou dedicar mais ao python
Cumps Luis
Mais informações acerca da lista ubuntu-pt