Go 呼唤;sed";来自exec.Command

Go 呼唤;sed";来自exec.Command,go,Go,我当前在尝试运行此代码时遇到问题,该代码应该调用unix命令sed,以查找文件/myfile.txt中的字符串hello,并将其替换为bye 如果您从命令行运行它,这很好,但是如果我从Go代码中尝试相同的操作 command := exec.Command("sed", "-e \"s/hello/goodbye/g\" ./myfile.txt") result,err := command.CombinedOutput() fmt.Println(string(result)) 我只是继续

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

如果您从命令行运行它,这很好,但是如果我从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: `"'
是否存在某种引用转义或导致其解释字符串错误的原因


任何帮助都将不胜感激

我相信以下方法会奏效:

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

我相信以下工作:

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

注意:
exec.Command(“cmd”、“a1 a2”、“a3”)
cmd“a1 a2”、“a3”
的形式执行-这就是它不起作用的原因。如果字符串是变量,我如何添加它?e、 g.如果我的字符串是
s:=“再见”
,如何添加?注意:
exec.Command(“cmd”、“a1 a2”、“a3”)
作为
cmd“a1 a2”、“a3”
执行,这就是它不起作用的原因。如果它是一个变量,我如何添加字符串?e、 g.如果我的字符串是
s:=“再见”
,而不是硬编码“再见”,如何添加?