【问题标题】:Commenting and uncommenting using sed -e使用 sed -e 注释和取消注释
【发布时间】:2017-12-24 11:24:46
【问题描述】:

我在 python 脚本中使用 sed -e 来注释和取消注释我的 RPi2 的 /etc/network/interfaces 文件中的行。它的工作方式是,当我运行我的 python 脚本时,我的 /etc/network/interfaces 中的特定行将分别被注释和取消注释。但是,我遇到了一个错误,我无法注释掉某些行,换句话说,它没有在我想要注释掉的行前面添加“#”。我也面临取消注释 wpa-conf /etc/wpa_supplicant.conf 的问题

这是我在 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

我运行python时出现的错误是:

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

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

不胜感激。

【问题讨论】:

    标签: python sed raspberry-pi comments


    【解决方案1】:

    您需要将这场比赛中的正斜杠/wpa-conf /etc/wpa_supplicant.conf/ 转义为/wpa-conf \/etc\/wpa_supplicant.conf/

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多