Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/07/2006, à 08:05

tshirtman

[résolu]python, popen() erreur sur sed.

Alors voila, je bosse sur un GUI pour grub et donc j'ai cherché un moyen de récupérer les infos qui m'interressent dans /boot/grub/menu.lst, j'ai fait une commande bash sympa, pour l'appeleller avec popen (oui si vous avez plus propre je suis preneur, je débute un peu en python).

alors voila le pb:

cat /boot/grub/menu.lst |grep -v ^#|egrep '(title|kernel|initrd|boot)'| tr -s "\t" "\n" | sed s/" root="/"\nroot\n"/g

marche comme je veux dans un terminal. Mais dans un environement python ça acroche:

gaby@Tshirtman:~$ python
Python 2.4.3 (#2, Apr 27 2006, 14:43:58)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> entriesFlow=os.popen("""cat /boot/grub/menu.lst |grep -v ^#|egrep '(title|kernel|initrd|boot)'| tr -s "\t" "\n" | sed s/" root="/"\nroot\n"/g """)
>>> sed: -e expression n°1, caractère 9: commande `s' inachevée
tr: Erreur d'écriture.: Relais brisé (pipe)

>>>

sachant que sans le "sed..." ça passe je ne sais pas si c'est un bug de popen avec sed ou si c'est moi qui ai raté quelque chose..

une idée?

merci d'avance!

Dernière modification par tshirtman (Le 05/07/2006, à 08:10)

Hors ligne

#2 Le 05/07/2006, à 08:10

tshirtman

Re : [résolu]python, popen() erreur sur sed.

lol trouverdans les 5 minutes suivantes ça fait con...

alors j'ai regardé attentivement et j'ai pensé que mes "\" pouvait être mal interprétés... je les ai donc doublés pour que ce soit bien \ qui soit lu (\ étant le caractère d'échapement)

et ça marche!

Dernière modification par tshirtman (Le 05/07/2006, à 08:11)

Hors ligne