ZBLOG

golang实现,初始文件内容为 ens9@192.168.201.101/24,192.168.201.103/24,192.168.201.104/24,192.168.201.105/24 ens3@172.21.33.145/16 ens10@192.168.202.101/24 要求删除文件中的ens9@192.168.201.105/24,最后的结果如下 ens9@192.168.201.101/24,192.168.201.103/24,192.168.201.10...

以下是使用Golang实现在一个函数内删除指定IP的代码示例:

package main

import (
	"fmt"
	"io/ioutil"
	"strings"
)

func removeIPFromFile(filePath, ipToDelete string) error {
	content, err := ioutil.ReadFile(filePath)
	if err != nil {
		return err
	}

	lines := strings.Split(string(content), "\n")
	var updatedLines []string

	for _, line := range lines {
		if strings.HasPrefix(line, "ens9") {
			tokens := strings.Split(line, ",")
			var updatedTokens []string

			for _, token := range tokens {
				if !strings.Contains(token, ipToDelete) {
					updatedTokens = append(updatedTokens, token)
				}
			}

			if len(updatedTokens) > 0 {
				updatedLine := strings.Join(updatedTokens, ",")
				updatedLines = append(updatedLines, updatedLine)
			}
		} else if !strings.HasPrefix(line, "ens9") || line != "" {
			updatedLines = append(updatedLines, line)
		}
    }

    updatedContent := strings.Join(updatedLines, "\n")

	err = ioutil.WriteFile(filePath, []byte(updatedContent), 0644)
	if err != nil {
        return err
    }

    return nil
}

func main() {
	filePath := "path/to/your/file.txt" // 替换为实际的文件路径
	ipToDelete := "192.168.201.105/24"

	err := removeIPFromFile(filePath, ipToDelete)
	if err != nil {
        fmt.Printf("Error removing IP: %s\n", err.Error())
        return
    }

    fmt.Println("IP removed successfully!")
}

请将 filePath 替换为您实际的文件路径。该函数会读取文件内容,逐行检查每一行是否以 "ens9" 开头。如果是,则会拆分该行中的IP地址,并删除要删除的IP。最后,它将更新后的内容写回到原始文件中。

注意:在运行之前,请确保根据实际需求修改代码和文件路径,并备份原始文件。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17759

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?