在一个文件(.py文件)中,我有一些不同名称的类,但有些具有公共变量:
class myClass1:
f1 = '512kB'
f2 = 2
f3 = 'something1'
class myClass2:
f1 = '512kB'
f2 = 6
f3 = 'something2'
Run Code Online (Sandbox Code Playgroud)
我想编写一个bash脚本并使用SED替换一些字符串.问题是我想首先找到myClass2然后替换f1 = '512kB'
为f1 = '1MB'
如果我使用
sed -i 's/f1 = '512kB'/f1 = '1MB'/g' /path/to/file
Run Code Online (Sandbox Code Playgroud)
它将替换两个类的字符串.
sed -i "/^class myClass2:/,/^class/s/f1 = '512kB'/f1 = '1MB'/" path/to/file.py
Run Code Online (Sandbox Code Playgroud)
这假设您的类声明永远不会缩进.
但是,鉴于这是Python,编写一个简单的子例程来设置变量的值,而不是硬编码是不是更有意义呢?