我需要在配置文件中添加几行。格式如下:
[Topic1]
param=foo
param=bar
param=foobar
[Topic2]
param=one
param=two
等...
我正在尝试使用sed编写脚本以将参数附加到特定主题。由于所有主题都有param=
,因此我不能只在最后一次出现该字符串之后插入一行。另外,我不能指望最后一个参数的值是一致的,例如,我不能只在字符串param=two
任何帮助将不胜感激。我对mutliline sed-fu不太熟悉。 谢谢!
答案 0 :(得分:0)
sed -i -r ':a; N; $!ba; s/\[Topic1\]\n(param=[a-zA-Z]*\n)*/¶m=VALUE\n/g' FILE_NAME
:a; N; $!ba;
的基本操作是将不是最后一行(N
)的所有行都附加到:a
创建的标签中,以便我们可以在表达式中使用\n
然后匹配[Topic1],后跟任意数量的param = xxx,并将param = VALUE附加到匹配结果的末尾(&
)。