如何解决sed 错误:sed:-e 表达式 #1,字符 22:未终止的 `s' 命令
我在 python 中使用 os.system
运行 sed 命令。下面是代码。
os.system("sed -i /solid/s/Visualization Toolkit generated SLA File/chestwall/g mesh1.stl")
要更改的名称中有空格。此外,在最后部分,即 mesh1.stl
,1
需要是可变的。怎么做?
-
首先,对于这段代码,我收到如下错误:
sed: -e expression #1,char 22: unterminated s command
我尝试将 /
放在最后。
- 其次,我需要
mesh1
作为上一行的变量。比如说,mesh1 作为a
并且每次a
都会改变。怎么写?
解决方法
确保 sed 语句/命令在双引号或单引号中,然后在将它们传递给 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)
您可以将命令作为列表而不是字符串传递,并且您可以明确地划分参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。