0
Im自動化部署過程,我需要一個工具來替換部分文件。我需要更換的部分是這樣的:使用sed替換多行嵌套數組與文件的內容
Vari = {
...
}
REPLACEME = {
'default' = {
...
}
}
...
就像你所看到的,它是一個嵌套的數組(但我知道,只會有1個嵌套數組)。我有代碼替換名爲FILETOREPLACE.txt的文件中的數組,我需要用該文件的內容替換結構REPLACEME。
使用sed,我得到一個查找結構(刪除它)的腳本,但是我不能用它代替文件的內容。 sed腳本是下一個:
sed '/REPLACEME = {/{:1; /}/!{N; b1}; N; :2; /}/!{N; b2};//d};' settings.py
這sed腳本使得這個:
'/REPLACEME = {/{ -> It matchs the begining of the array
:1; -> Tag to the parents array
/}/!{ -> If it's not a closing curl brace
N; -> Read next
b1 -> Go back to :1;
};
N; -> If its the closing curl braces, continue
:2; -> Next tag
/}/!{ -> Again... continue until it finds a closing curl brace
N; -> ...
b2 -> ...
};
//d}; -> This deletes the buffer (I have not been able to replace it)
所以......我想如果有人可以糾正我的腳本與另一個文件的內容替換匹配(稱爲FILETOREPLACE.txt)
它的工作!謝謝!你能解釋這個sed是如何工作的嗎? – megavexus