我正在使用Raspbian,但这不是Pi特定的问题
我需要从我的C程序中删除 来自etc / wpa_supplicant / wpa_supplicant.conf的未使用的网络配置文件。
我的程序以root身份运行。
是否有针对此的shell命令?
我尝试使用grep,tr和sed的组合,但是我没有在那里完成。 白色空间也可能有所不同。
我需要为给定的ssid删除此块,忽略空格。
network={
ssid="MY_SSID_TO_DELETE"
.........
}
答案 0 :(得分:2)
SSID_TO_DELETE="Put your ssid here"
sed -n "1 !H;1 h;$ {x;s/[[:space:]]*network={\n[[:space:]]*ssid=\"${SSID_TO_DELETE}\"[^}]*}//g;p;}" YourFile
在C中,可以直接在命令中生成您的SSID信息(将put_your_ssid_here替换为ssid的值)
sed '1 !H;1 h;$ {x;s/[[:space:]]*network={\n[[:space:]]*ssid="Put_your_ssid_here"[^}]*}//g;}' YourFile
以\ n代替的第一个代码段;
SSID_TO_DELETE="Put your ssid here"
sed -n "1 !H
1 h
$ {
x
s/[[:space:]]*network={\n[[:space:]]*ssid=\"${SSID_TO_DELETE}\"[^}]*}//g
p
}" YourFile
原则(基于最后一个片段)
答案 1 :(得分:1)
试试这个
SSID_TO_DELETE=$1
sudo sed -n "1 !H
1 h
$ {
x
s/[[:space:]]*network={\n[[:space:]]*ssid=\"${SSID_TO_DELETE}\"[^}]*}//g
p
}" /etc/wpa_supplicant/wpa_supplicant.conf > /etc/wpa_supplicant/wpa_supplicant.conf