H5W3
当前位置:H5W3 > 其他技术问题 > 正文

sed 变量替换问题

先祭出部分代码:

from commands import getstatusoutput

index=str(4)
base='base.id = '+index
cmd="sed -i "s/base.id = 3/${base}/g" /data/test.txt"

想用python执行shell的sed替换命令,用一个变量替换一个常量,无奈一直不行(str(4)部分其实是输入的值,为了更好调试我就填了个4进去),求大神指点。

回答:

你既然想执行的是sed的替换命令,那 s替换命令不就是丢了么?
sed -i 's/base.id = 3/base.id = 4/' test.txt


你把shell的变量替换用到python里是不行的。
使用python string的 format

cmd="sed -i \"s/base.id = 3/{}/g\" test.txt".format(base)
subprocess.call(cmd, shell=True)

回答:

把最外侧的两个双引号改成单引号

本文地址:H5W3 » sed 变量替换问题

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址