使用sed [duplicate]修改配置文件中的值

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有一个config.py文件,参数定义为

class A:
   path='/a/b/c'
   ...

class B:
   path='/d/e/f'
   ...

我正在尝试使用来自Bash脚本的path修改class A中的config.py中的参数sed -i

sed -i <脚本用类A中的/ x / y / z /替换路径值> config.py

预期结果:

class A:
    path= '/x/y/z'
    ...

class B:
    path= '/d/e/f'
    ...

我研究了如何使用以下方法打印路径变量的值:

sed -i '/A/,/path/p' config.py

我怎么能更换这个值呢?

bash sed
1个回答
-1
投票

这个sed解决方案解决了您的问题:1

sed -i "
  /class A/,/path/ {
    s!path=.*!path='/x/y/z'!
  }
  " config.py

或者如果你想要一行:

sed -i "/class A/,/path/{s!path=.*!path='/x/y/z'!}" config.py

进一步说明:

  • 我在/class A/,/path/范围内搜索,然后在该范围内调用s///替换。
  • 请注意在!命令中使用s///作为备用分隔符。

1在Mac OS X上使用GNU sed进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.