sed error: sed: -e expression #1, char 22: unterminated `s' command

sed error: sed: -e expression #1, char 22: unterminated `s' command

我运行在python中使用os.system的sed命令。下面是代码。

os.system("sed -i /solid/s/Visualization Toolkit generated SLA File/chestwall/g mesh1.stl")

要更改的名称中有空格。另外,在最后部分,即 mesh1.stl1 需要是可变的。怎么做?

  1. 首先,对于这段代码,我得到的错误是:

    sed: -e expression #1, char 22: unterminated s command

我试着把 / 放在最后。

  1. 其次,我需要 mesh1 成为上一行的变量。假设 mesh1 为 a,并且每次 a 都会发生变化。这样怎么写?

确保 sed statement/command 在双引号或单引号中,然后在将字符串传递给 os.system

之前使用“+”连接字符串
import os
var=1
os.system("sed -i 's/solid/s/Visualization Toolkit generated SLA File/chestwall/g' mesh" + var + ".stl")

函数 os.system() 现在被认为已被取代 subprocess.call().

请您尝试以下操作:

import subprocess
a = 'mesh1'
cmd = ['sed', '-i', '/solid/s/Visualization Toolkit generated SLA File/chestwall/g', '{0}.stl'.format(a)]
subprocess.call(cmd)

您可以将命令作为列表而不是字符串传递,并且可以显式划分参数。