У меня есть 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
Используя 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