如何用SED工具仅输出匹配的network={}模式而非执行替换
提取指定SSID对应的network配置块
嘿,如果你想要从树莓派系统的wpa_supplicant.conf(或者同格式的配置文件)里,精准提取出匹配某个SSID的network={}配置块,而不是删除该块后输出剩余内容,可以用下面这个sed命令:
cat network_block_eg.conf | sed -n '/network={/{:a;N;/}/!ba;/ssid="example"/p}'
简单说下这个命令的逻辑
- 首先定位到以
network={开头的行,然后持续读取后续内容,直到碰到闭合的},完整捕获一个network配置块 - 接着检查这个块里是否包含你指定的SSID(这里是
ssid="example"),如果匹配就把整个块输出出来
示例输出
假设你的配置文件里有对应的目标块,执行命令后会输出类似这样的内容:
network={ ssid="example" proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk="not so secure passphrase" wpa_ptk_rekey=600 }
内容的提问来源于stack exchange,提问作者Swapna Obulareddy
相关产品推荐
相关产品推荐

