2017-07-19 65 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命令。