2 回答

TA贡献1779条经验 获得超6个赞
所以,如果它是一个字符串,可能应该使用 split 将字符串转换为一个数组,那么由于每一行都有相同的列,那么你很可能通过循环遍历新创建的数组来创建一个结构数组(创建每一行结构在循环期间的每 4 次循环中),那么您将拥有一个定义明确的结构数组,您可以查询和操作。我还没有把代码放上去,因为我只是想确保它实际上是一个像下面这样的字符串?
"NAME UUID TYPE DEVICE
WAN 6a62d79f-fba2-45b3-a3dd-e847c4706d96 ethernet ens18
DMZ 46a55117-b545-407e-af6e-25d48dfe95f5 ethernet ens21
LAN 1691607b-9b73-46ff-95c4-9652d062706a ethernet ens19
MGT a4819491-243c-4e5b-8cef-a49de5a9cb07 ethernet ens22
Untrusted 0734a0ea-c242-4333-bece-2b5cb16e3337 ethernet ens20"

TA贡献1839条经验 获得超15个赞
我想我会为上面写的评论添加代码:
type Device struct {
connectionID string
uuid string
deviceType string
deviceName string
}
type Devices []Device
// getNetworkConnections retrieves a list of network connections and their associated details.
// Details include: connection name, uuid, type, and device id (aka NIC name).
func getNetworkConnections() Devices {
nmcliCmd := exec.Command("nmcli", "con", "show")
cmdOutput, err := nmcliCmd.Output()
if err != nil {
log.Fatal(err)
}
// Iterate through the devices and populate the type.
var device Device
rows := strings.Split(string(cmdOutput[:]), "\n") // Create an array of rows containing the output
for _, row := range rows[1:] { // Skip the heading row and iterate through the remaining rows
cols := strings.Fields(row) // Extract each column from the row.
if len(cols) == 4 {
device.connectionID = cols[0]
device.uuid = cols[1]
device.deviceType = cols[2]
device.deviceName = cols[3]
devices = append(devices, device)
}
}
return devices
}
- 2 回答
- 0 关注
- 167 浏览
添加回答
举报