私はデプロイメントプロセスを自動化しています。ファイルの一部を置き換えるツールが必要です。あなたが見ることができるように、そのネストされた配列(しかし、私はそれが唯一の1つのネストされた配列を持っていることを知っている)sedを使用して複数行のネストされた配列をファイルの内容で置き換える
Vari = {
...
}
REPLACEME = {
'default' = {
...
}
}
...
:私は交換する必要がある部分は、このようなものです。私は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)
だから、誰もが別のファイルの内容と一致するものを置き換えるために私のスクリプトを修正することができれば...私が希望します
sed '/REPLACEME/rFILETOREPLACE.txt
/REPLACEME/,/^\}/d' sed.in
最初statemen:このような
これは機能しました。ありがとう!このsedがどう働くのか説明できますか? – megavexus