[Ubuntu-PT 9771] Re: comando seed com variáveis

Paulo Pinhal paulojspinhal gmail.com
Sábado, 20 de Outubro de 2012 - 18:27:35 UTC


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>
>


Mais informações acerca da lista ubuntu-pt