如何使用korn shell脚本编辑.ini文件?

时间:2019-02-21 16:00:37

标签: ksh ini

我有一个.ini文件,看起来像这样

[test]
  foo=bar

我的文件称为test.ini

我想编写一个可用于以下目的的修改我的test.ini文件的外壳程序

    [test]
      foo=barzar

我尝试了以下方法,但是它不起作用。

sed -i.bak '/^\[test]/,/^\[/{s/^foo[[:space:]]*=.*/foo = foobarbaz/}' test.ini

有人有建议吗?

2 个答案:

答案 0 :(得分:0)

尝试:

perl -p -i -e 's/(foo=bar)/$1zar/g' test.ini

答案 1 :(得分:0)

假设您只想在foo=something块中更改[test]

sed -i.bak '/^\[test\]/,/^\s*foo\s*=/ s/^\s*foo\s*=.*/ foo = barzar/' test.ini

第一部分组成了[test]和包含foo =的行的地址,在foo之前和foo之后都有可选的空格。替换只会在这里发生。
第一部分:/^\[test\]/,/^\s*foo\s*=/

第二部分是在foo之前,foo之后和==之后用空格插入的替换:
第二部分:s/^\s*foo\s*=.*/ foo = barzar/