github.com/TaceyWong/ctools@v0.1.1-0.20201221084458-4d7a8190b2ac/utils/shtool.go (about) 1 package utils 2 3 import ( 4 "bytes" 5 "errors" 6 "os/exec" 7 "regexp" 8 ) 9 10 // ExecShellCMD 执行Sheel命令 11 func ExecShellCMD(shellType, command string) (string, string, error) { 12 var stdout bytes.Buffer 13 var stderr bytes.Buffer 14 cmd := exec.Command(shellType, "-c", command) 15 cmd.Stdout = &stdout 16 cmd.Stderr = &stderr 17 err := cmd.Run() 18 return stdout.String(), stderr.String(), err 19 } 20 21 // RegexGetGroup 实现正则group功能 22 func RegexGetGroup(compRegEx *regexp.Regexp, text string) (map[string]string, error) { 23 match := compRegEx.FindStringSubmatch(text) 24 groupMap := make(map[string]string) 25 err := errors.New("no match") 26 for i, name := range compRegEx.SubexpNames() { 27 if i > 0 && i <= len(match) { 28 groupMap[name] = match[i] 29 err = nil 30 } 31 } 32 return groupMap, err 33 }