我有一个Openwrt无线配置文件。 格式是这样的:使用awk替换文件中的字符串(如sed -i)
config wifi-iface 'priv'
option device 'radio0'
option ifname 'priv0'
option mode 'ap'
option encryption 'psk-mixed'
option macfilter 'allow'
option macfile '/tmp/mac_filter_priv'
option disabled '1'
option hidden '1
config wifi-iface 'orphan'
option device 'radio0'
我需要做的是准确地找到WiFi的IFACE“私法”和变化选项1禁用0 我试着用awk来做到这一点是这样的:
awk 'BEGIN{f=0} /wifi-iface \47priv/{f=1} {if(f==1 && $2=="disabled")
{gsub("1", "0"); f=0; print}}' wireless
似乎很好,但我不能交互地做它,所以文件没有改变。如果awk不支持-i选项,该怎么做?
你可以运行多个以分号或'&&'分隔的命令吗?您可以随时复制文件,覆盖原件,然后一次删除复印件。例如:'cp wireless wireless.bak && awk'代码在这里'wireless.bak> wireless && rm wireless.bak' –