我有一个 config.py 文件,其参数定义为
class A:
path='/a/b/c'
...
class B:
path='/d/e/f'
...
我正在尝试使用Bash脚本中的path
来修改class A
中config.py
中sed -i
中的参数class A:
path= '/x/y/z'
...
class B:
path= '/d/e/f'
...
:
sed -i << em>脚本用A类中的/ x / y / z /替换路径值> config.py
预期结果:
sed -i '/A/,/path/p' config.py
我想出了如何使用以下方法打印路径变量的值:
import pandas as pd
opened = []
for file in arrayFile:
## you must puth header on 0 and index_col as none so you wont damage the
#indexed later
df = pd.read_csv(file, index_col= None, header = 0)
opened.append(df)
frame = pd.concat(opened, axis = 0, ignore_index = True)
我该如何替换值?
答案 0 :(得分:-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测试。