登录
首页 >  Golang >  Go问答

如何执行命令来执行 sed

来源:Golang技术栈

时间:2023-03-23 11:57:06 197浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何执行命令来执行 sed》,就很适合你,本篇文章讲解的知识点主要包括golang。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我有以下代码段不起作用。编译但不做它应该做的事情。在 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

正确答案

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

好了,本文到此结束,带大家了解了《如何执行命令来执行 sed》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表