Bash
從 bash 腳本向配置文件添加行?
我試圖找出在配置文件中找到一行,然後下拉兩行然後插入一行程式碼。我試圖在 awk/sed 中執行此操作,但被卡在輸入符上。我不依賴於 awk/sed,但正在尋找一種干淨的方式來實現這一點。
<Location /> Order allow,deny </Location>
然後在該塊中添加一行:
<Location /> Order allow,deny Allow all </Location>
awk
可用於此。下面的腳本只會在找到<Location />
標籤後添加文本。awk '/\<Location \/\>/{ start=1 } {if(start) ++start; if(start==4) print " Allow all"} 1' infile
對於以下輸入文件:
stuff <Location /> Order allow,deny </Location> more stuff
該腳本產生:
stuff <Location /> Order allow,deny Allow all </Location> more stuff
如果您想像這樣替換幾個部分,可以輕鬆修改相同的腳本:
awk '/\<Location \/\>/{ start=1 } {if(start) ++start; if(start==4){print " Allow all"; start=0}} 1' infile
sed '/Order allow,deny/ aAllow all' < yourFile
這會將修改後的文件輸出到stdout。如果你想修改它然後(sed(1)):
-一世
$$ SUFFIX $$, - 到位$$ =SUFFIX $$
edit files in place (makes backup if SUFFIX supplied)
解釋:
For each line that matches `/Order allow,deny/`: Execute command 'a' (append) with 'Allow all' as parameter
http://grymoire.com/Unix/sed.html是了解更多關於
sed
.