【问题标题】:Calling "sed" from exec.Command从 exec.Command 调用“sed”
【发布时间】:2012-07-31 21:30:50
【问题描述】:

我目前在尝试运行此代码时遇到问题,该代码应该调用 unix 命令 sed 以在文件 ./myfile.txt 中查找字符串 hello 并将其替换为 goodbye

如果你从命令行运行它会很好,但是如果我从我的 Go 代码中尝试同样的事情......

command := exec.Command("sed", "-e \"s/hello/goodbye/g\" ./myfile.txt")
result,err := command.CombinedOutput()
fmt.Println(string(result))

我只是继续得到这个输出

sed: -e expression #1, char 2: unknown command: `"'

是否存在某种引号转义或导致它解释字符串错误的原因?

任何帮助将不胜感激

【问题讨论】:

    标签: go


    【解决方案1】:

    我相信以下工作:

    command := exec.Command("sed", "-e","s/hello/goodbye/g","myfile.txt")
    

    【讨论】:

    • 注意:exec.Command("cmd", "a1 a2", "a3") 被执行为 cmd "a1 a2" "a3" - 这就是它不起作用的原因。
    • 如果字符串是变量,如何添加?例如而不是硬编码“再见”,如果我的字符串是 s := "goodbye" ,如何添加?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    相关资源
    最近更新 更多