我需要从配置文件中删除参数的值。问题是该值有多行,\n
并且配置文件中有多个部分具有相同的参数。我有这样的事情
[Section1 : Common]
; @label:
par1 = "va1
val2"
[Section2 : Common]
; @label:
par1 = "val3"
我需要
[Section1 : Common]
; @label:
par1 = ""
[Section2 : Common]
; @label:
par1 = "val3"
尝试使用sed
无果
sed -i.bak 's/^\(par1 ="\).*/\1 ""/' cfg.ini
它替换了第一行:
[Section1 : Common]
; @label:
par1 = ""
val2"
如果您有 GNU sed(版本 >=4.2.2),您可以使用-z
允许捕获多于 1 行的选项:
sed -i.bak -z 's/\(\[Section1 : Common\][^[]\+par1 = "\)[^"]\+"/\1"/' file
正则表达式匹配想要的部分和字符串,par1 =
并用空字符串替换带引号的字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句