以下是一个示例代码,用于在Golang中执行类似的命令并将字符串作为参数传递给grep:
package main
import (
"fmt"
"os/exec"
"strings"
)
func main() {
//要搜索的字符串
searchStr := "net2"
//构造命令
cmd := exec.Command("sh", "-c", fmt.Sprintf(`ifconfig | grep -oE '^[^ ]+' |grep "%s\."`, searchStr))
//运行命令并获取输出
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
//将输出转换为字符串
outStr := string(output)
//按行拆分字符串
lines := strings.Split(outStr, "\n")
//打印每一行输出
for _, line := range lines {
fmt.Println(line)
}
}
这个程序和上一个程序非常相似,只有一处不同。在构造命令时,使用了fmt.Sprintf函数来动态生成搜索字符串。这样可以根据需要修改要搜索的内容。
请注意,在使用fmt.Sprintf函数时,必须将searchStr变量放入双引号中。这样才能确保搜索字符串被正确引用,并且在执行命令时正常工作。