我有一個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' –