以下是一个示例代码,用于在Golang中执行上述命令并获取输出:
package main
import (
"fmt"
"os/exec"
"strings"
)
func main() {
//构造命令
cmd := exec.Command("sh", "-c", `ifconfig | grep -oE '^[^ ]+' |grep "net2\."`)
//运行命令并获取输出
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)
}
}
这个程序会使用exec包构造一个带有管道的shell命令,并运行该命令以获取输出。然后它会将输出转换为字符串,并按行拆分字符串。接下来,程序遍历每一行,将其打印到控制台。
请注意,在本例中使用了“sh”命令来启动shell进程。这样可以确保管道符号(|)被正确解释。如果您在Windows操作系统上运行此程序,请将“sh”更改为“cmd”。