我有.sh文件(imr_s3_cp.sh)。此文件中有变量SRC_FOLDER。此变量包含一些值。我想更新此值,然后将文件保存在同一位置。
文件包含此
export SRC_FOLDER=**/imrmnt/vvtransform/csv**
export TRG_FOLDER=s3://itx-acm-eureka-dev-incoming-sourcefiles/imrland/
export LOG=/imrmnt/vvtransform/log/s3_cp.log
我想要结果下面的东西-
export SRC_FOLDER=**/imrmnt/vvtransform/csv/CSV_01232019_01232019**
export TRG_FOLDER=s3://itx-acm-eureka-dev-incoming-sourcefiles/imrland/
export LOG=/imrmnt/vvtransform/log/s3_cp.log
答案 0 :(得分:0)
因为您打算保存环境变量,所以唯一的选择是使用open
和write
。
第1步:读取并获取行
>>> ev_file = open("/path/to/ev.sh", "r+")
>>> evfile_contents = ev_file.read()
>>> evfilelines = evfile_contents.split("\n")
第2步:用SRC_FOLDER
查找行
>>> linenum = 0
>>> for i in range(0, len(evfilelines)):
... if "SRC_FOLDER" in evfilelines[i]:
... linenum = i
...
第3步:用新值替换该行
>>> evfilelines[linenum] = 'export SRC_FOLDER=**/imrmnt/vvtransform/csv/CSV_01232019_01232019**'
第4步:截断文件。 注意:如果文件太大,您也可以转到该行并仅更改该行。我让你去探索。
>>> ev_file.seek(0)
0
>>> ev_file.truncate()
第5步:编写新内容
>>> for i in evfilelines:
... ev_file.write(i + '\n')
第6步:关闭文件以刷新缓冲区
>>> ev_file.close()
然后您有了新的ev.sh
,可以在python中阅读。