在 ini 文件中附加指定标题的指定属性

在 ini 文件中附加指定标题的指定属性

我有一个包含以下内容的 ini 文件标头与各自的财产字段。对于给定的标题2和一个属性2 我如何附加AppendedValue属性2通过使用sedawk

可能有数量标头和顺序标头不一定是 1、2 或 3。

输入文件1:

[Header1]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

[Header2]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue


[Header3]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

输出文件1:

[Header1]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

[Header2]

property1 = containsSomeValue
property2 = containsSomeValue AppendedValue
property3 = containsSomeValue


[Header3]

property1 = containsSomeValue
property2 = containsSomeValue
property3 = containsSomeValue

答案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

相关内容