Добавление указанного свойства указанного заголовка в ini файле

У меня есть ini файл, содержащий Заголовки с соответствующими полями свойства к нему. Для данного Header2 и property2, как я добавляю AppendedValue к property2 любым использованием sed или awk?

Может быть количество N Заголовков, и порядок Заголовков не должен быть 1, 2 или 3.

Вход File1:

[Header1]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

[Header2]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue


[Header3]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

Вывод File1:

[Header1]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

[Header2]

property1 = containsSomeValue
property2 = containsSomeValue AppendedValue
property3 = containsSomeValue


[Header3]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue
1
задан 24 May 2018 в 17:13

1 ответ

Используя sed:

sed "/\[Header2\]/,/\[/{/^property2/ s/$/ AppendedValue/}" infile

Это будет искать строки между [Header2] и [ (который был бы начальным символом следующих, неизвестных Заголовок ), затем добавьте эти AppendedValue строка в конец строки, если запущено с property2; {sed-script} часть только запрашивает блок, подобранный в данном диапазоне шаблонов, и другие строки из этого диапазона будут распечатаны без изменений, который является sed действие по умолчанию.

можно использовать выше таким образом также:

sed "/\[Header2\]/,/\[/{s/^property2.*/& AppendedValue/}" infile

, Если Вы хотите быть более конкретными:

sed "/^\[Header2\]/,/^property2/{/^property2/ s/$/ AppendedValue/}" infile
1
ответ дан 7 December 2019 в 15:19

Другие вопросы по тегам:

Похожие вопросы: