如何执行命令来执行sed

好奇的工程师

我有以下无效的代码段。编译但不执行预期的操作。在bash上执行相同的命令有效。为什么?

hash:="4ab32de"
cmd = "sed -i -e 's/clt_[0-9a-z]*/clt_"+hash+"/g' /tmp/test.env"
    parts = strings.Fields(cmd)
    for _, part :=range parts {
        fmt.Printf("\n%s",part)
    }

    head = parts[0]
    out, err = exec.Command(head,parts[1:]...).Output()
    fmt.Printf("\nnew cmd is %s\n",cmd)
    fmt.Printf("out:%s",string(out))

零件的输出是完美的,像这样

sed
-i
-e
's/clt_[0-9a-z]*/clt_4ab32de/g'
/tmp/test.env
jrefior:

exec软件包不使用外壳,因此请删除所有引号(和转义符)。您的情况下,请删除单引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章