2017-07-19 35 views
0

评论和取消注释我在python脚本中使用sed -e来评论和取消注释我的RPi2的/ etc/network/interfaces文件中的行。它的工作方式是,当我运行我的python脚本时,我的/ etc/network/interfaces中的特定行将分别进行注释和取消注释。但是,如果我不能注释掉某些行,我就会面临一个错误,换句话说,它不会在我要注释的行前添加'#'。我也面临着在取消对WPA-conf的问题/etc/wpa_supplicant.conf来使用sed -e

这是我用我的python脚本注释的代码:

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

我有大约4其他几乎相同的线路,只是'iface .... static'发生变化的部分。

,我用于取消对WPA-conf的/etc/wpa_supplicant.conf来的代码是这样的:

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

错误说出来,当我跑了蟒蛇是:

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

的python脚本设法注释掉除1行之外的所有行,并取消注释除wpa-conf /etc/wpa_supplicant.conf行之外的所有行。

希望得到任何帮助。

回答

1

你需要躲避着在这场比赛/wpa-conf /etc/wpa_supplicant.conf/斜杠/wpa-conf \/etc\/wpa_supplicant.conf/

正在发生的事情是,SED看到/wpa-conf /e告诉它匹配/wpa-conf /行执行下面的命令。 “后续命令”是tc/wpa_supplicant.conf/,这不是有效的sed命令。