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 实现删除文件中的 ens9@192.168.201.105/24 的代码:

package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func removeIPFromLine(line, ip string) string {
	ipList := strings.Split(line, ",")
	if len(ipList) > 1 {
		for i, item := range ipList {
			if strings.TrimSpace(item) == ip {
				ipList = append(ipList[:i], ipList[i+1:]...)
				break
			}
		}
		return strings.Join(ipList, ",")
	}
	return ""
}

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

	file, err := os.Open(filePath)
	if err != nil {
		fmt.Printf("Error opening file: %s\n", err.Error())
		return
	}
	defer file.Close()

	scanner := bufio.NewScanner(file)
	var updatedLines []string

	for scanner.Scan() {
		line := scanner.Text()
		
        if strings.HasPrefix(line, "ens9") && strings.Contains(line, ipToDelete) {
            line = removeIPFromLine(line, ipToDelete)
            if line == "" { 
                continue 
            }
        }

        updatedLines = append(updatedLines, line)
    }
    
    if scanner.Err() != nil {
        fmt.Printf("Error scanning file: %s\n", scanner.Err().Error())
        return
    }

    outputFile, err := os.Create(filePath)
    if err != nil {
        fmt.Printf("Error creating output file: %s\n", err.Error())
        return
    }
    defer outputFile.Close()

    writer := bufio.NewWriter(outputFile)

    for _, line := range updatedLines {
        fmt.Fprintln(writer, line)
    }
    writer.Flush()

    fmt.Println("File updated successfully!")
}

请将 path/to/your/file.txt 替换为实际的文件路径。运行上述代码后,它将打开指定文件,逐行检查并删除包含 ens9@192.168.201.105/24 的记录(如果存在多条),或者删除整行(如果仅存在一条)。最后,将更新后的内容写回到原始文件中。

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


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?