Как выполнить команду, чтобы сделать Sed - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующий фрагмент, который не работает.Компилирует, но не делает то, что должен.Выполнение той же команды на 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 голосов
/ 18 сентября 2018

Пакет exec не использует оболочку, поэтому уберите все кавычки (и экранируйте).В вашем случае удалите одинарные кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...