下面是使用 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助手提供,问题来源于学员提问