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