我想将ignore_broadcast_ssid=1
替换为ignore_broadcast_ssid=0
在文件/var/run/hostapd-phy0.conf
内。
这是我的第一个猜测:
sed 's/ignore_broadcast_ssid=1/ignore_broadcast_ssid=0/g' /var/run/hostapd-phy0.conf
但是这会全局替换此选项,我怎样才能在其中一个部分中替换它,从文件中的bss=wlan0-2
开始?
...
bss=wlan0-2
ctrl_interface=/var/run/hostapd
ap_isolate=1
disassoc_low_ack=1
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
auth_algs=1
wpa=0
ssid=temp_wifi
bridge=br-client
bssid=a0:f3:c1:d8:b7:7c
interface=client0
ctrl_interface=/var/run/hostapd
ap_isolate=1
disassoc_low_ack=1
preamble=1
wmm_enabled=1
...
答案 0 :(得分:1)
您可以先找出第一个文本的行号作为起始搜索索引:
grep -n "bss=wlan0-2"
假设它在第10行。然后在下面应用你的sed命令:
sed '10s/ignore_broadcast_ssid=1/ignore_broadcast_ssid=0/' /var/run/hostapd-phy0.conf
确保在命令末尾没有关键字g,因为它表示全局替换匹配的模式。
答案 1 :(得分:1)
sed '/bss=wlan0-2/,/ignore_broadcast_ssid/{s/ignore_broadcast_ssid=1/ignore_broadcast_ssid=0/}' file