여러 섹션이 포함된 파일이 있는데 섹션의 모든 매개변수 값을 변경해야 합니다 [Test2]
.
입력하다:
[Test_1]
abc=123
def=456
.
.
.
so on
[Test_2]
abc=123
def=456
.
.
.
so on
[Test_3]
abc=123
def=456
.
.
.
so on
예상 출력:
[Test_1]
abc=123
def=456
.
.
.
so on
[Test_2]
abc=111
def=222
.
.
.
so on
[Test_3]
abc=123
def=456
.
.
.
so on
나는 이것을 시도했습니다 :
sed "/\[Test_2\]/{n;s/^\(abc=\).*/\1$val1/';}" input > output.new && mv output.new input
sed "/\[Test_2\]/{n;s/^\(def=\).*/\1$val2/';}" input > output.new && mv output.new input
어디서 $val1=111
그리고 $val2=222
.
하지만 예상한 결과가 나오지 않습니다. 누구든지 도와줄 수 있나요?
답변1
또 다른 방법은 Ansible을 사용하는 것입니다. 귀하의 파일은 Ansible이 매우 잘 관리할 수 있는 ini_file 파일 형식입니다.
확인하다http://docs.ansible.com/ansible/ini_file_module.html
귀하의 예에서 구문은 매우 간단합니다.
- ini_file: dest=/anotherconf
section=Test_2
option=abc
value=111
답변2
이것은 나에게 효과적입니다 -
sed '/Test_2/ {n;s/^\(abc=\).*$/\1'"$val1"'/;x;n;s/^\(def=\).*$/\1'"$val2"'/;H;g}'