2017-07-19 1 views
0

J'utilise sed -e dans un script python pour commenter et décommenter les lignes dans mon fichier/etc/network/interfaces pour mon RPi2. Cela fonctionne de telle sorte que lorsque j'exécuterai mon script python, les lignes spécifiques de mon/etc/network/interfaces seront respectivement commentées et non commentées. Cependant, je suis confronté à une erreur où je ne peux pas commenter certaines des lignes, en d'autres termes, il n'ajoute pas un '#' devant la ligne que je veux commenter. Je suis également confronté à des problèmes décommentant le wpa-/etc/wpa_supplicant.conf confCommenter et décommenter en utilisant sed -e

Voici le code que j'ai utilisé pour commenter dans mon script python:

stream = os.popen("sudo sed -e '/iface wlan0 inet static/ s/^#*/#/' -i /etc/network/interfaces 

J'ai environ 4 autres lignes presque identiques, juste la partie où 'iface .... statique' change.

Le code que j'ai utilisé pour décommentant le /etc/wpa_supplicant.conf wpa-est cette conf:

stream = os.popen("sudo sed -e '/wpa-conf /etc/wpa_supplicant.conf/ s/^#*//' -i /etc/network/interfaces 

erreur qui est sorti quand je courais le python était:

sh :1 tc/wpa_supplicant.conf/: not found 

Le Le script python a réussi à commenter toutes les lignes, sauf une, et à décommenter tout sauf la ligne wpa-conf /etc/wpa_supplicant.conf.

J'apprécierais toute aide.

Répondre

1

Vous devez échapper à la slashs dans ce match /wpa-conf /etc/wpa_supplicant.conf/-/wpa-conf \/etc\/wpa_supplicant.conf/

Ce qui se passe est que sed voit /wpa-conf /e qui lui demande d'exécuter la commande suivante sur les lignes correspondant à /wpa-conf /. La "commande suivante" est tc/wpa_supplicant.conf/, ce qui n'est pas une commande sed valide.