如何执行命令来执行sed

时间:2018-09-18 01:11:28

标签: go

我有以下无效的代码段。编译但不执行预期的操作。在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

1 个答案:

答案 0 :(得分:3)

exec软件包不使用外壳程序,因此请删除所有引号(和转义符)。您可以删除单引号。