Python 在Jython脚本中使用sed用文本文件中的变量替换整行

Python 在Jython脚本中使用sed用文本文件中的变量替换整行,python,bash,sed,jython,os.system,Python,Bash,Sed,Jython,Os.system,在Jython脚本中,我试图用包含变量(VAR)的目录地址替换文本文件的整行(本例中的第2行) 其中,obsids是一个整数的unicode,然后是一个字符串(通常类似于1342204440) 请告诉我脚本中的错误 谢谢。我们在评论中看到: obsids=str(obsids[i]) print type(obsids) os.environ['obsids']=obsids # this makes the Python variable behave inside UNIX os.syst

在Jython脚本中,我试图用包含变量(VAR)的目录地址替换文本文件的整行(本例中的第2行)

其中,
obsids
是一个整数的unicode,然后是一个字符串(通常类似于1342204440)

请告诉我脚本中的错误


谢谢。

我们在评论中看到:

obsids=str(obsids[i])
print type(obsids)
os.environ['obsids']=obsids  # this makes the Python variable behave inside UNIX
os.system('sed -i "2 s:.*:/usr/data/$obsids/:" /usr/software/file.txt')

如果要使用变量而不是文本
$VAR
,则需要双引号引用
sed
命令。您的Python代码段已完全中断,错误消息也无法读取。@fedorqui谢谢,我现在没有收到错误消息,脚本正在运行,但它不会像以前那样执行sed命令desired@ErikAllik什么意思?似乎fedorqui和我自己都能看到:/@thatwillsokid请更新您的问题,显示您正在使用的确切代码,以及
$VAR
的值(可能它包含
/
,因此它与sed分隔符冲突),它可以工作。先生,您是一位绅士和学者。谢谢你的帮助!我们做到了:)这是一个很好的虚拟调试练习,做得很好!
obsids=str(obsids[i])
print type(obsids)
os.environ['obsids']=obsids  # this makes the Python variable behave inside UNIX
os.system('sed -i "2 s:.*:/usr/data/$obsids/:" /usr/software/file.txt')