go自动给txt的每行行尾增加/32

admin 2023年10月26日02:30:03评论18 views字数 1786阅读5分57秒阅读模式

go自动给txt的每行行尾增加/32

小记

  • 每行IP 11.11.11.11  改成 11.11.11.11/32

// @Author  aa11lepackage mainimport (    "bufio"    "fmt"    "io/ioutil"    "os"    "regexp"    "strings"    "sync")func main() {    // 获取当前工作目录的绝对路径    currentDir, err := os.Getwd()    if err != nil {        fmt.Println("无法获取当前工作目录:", err)        return    }    // 获取当前目录下的所有文件    files, err := ioutil.ReadDir(currentDir)    if err != nil {        fmt.Println("无法列出当前目录中的文件:", err)        return    }    // 定义一个正则表达式以匹配IP地址    ipPattern := `b(?:d{1,3}.){3}d{1,3}b`    ipRegex := regexp.MustCompile(ipPattern)    // 创建等待组,用于等待所有文件处理完成    var wg sync.WaitGroup    // 错误处理函数    handleError := func(msg string, err error) {        fmt.Printf("%s: %vn", msg, err)    }    // 循环处理文件    for _, file := range files {        if !file.IsDir() && strings.HasSuffix(file.Name(), ".txt") {            filename := file.Name()            // 增加等待组计数            wg.Add(1)            go func(filename string) {                defer wg.Done()                // 打开文件                file, err := os.Open(filename)                if err != nil {                    handleError("无法打开文件 "+filename, err)                    return                }                defer file.Close()                // 创建一个新的输出文件                outputFile, err := os.Create("增加掩码_" + filename)                if err != nil {                    handleError("无法创建输出文件", err)                    return                }                defer outputFile.Close()                scanner := bufio.NewScanner(file)                writer := bufio.NewWriter(outputFile)                // 逐行读取文件并进行处理                for scanner.Scan() {                    line := scanner.Text()                    // 使用正则表达式查找IP地址并在末尾添加"/32"                    modifiedLine := ipRegex.ReplaceAllString(line, "$0/32")                    writer.WriteString(modifiedLine + "n")                }                if err := scanner.Err(); err != nil {                    handleError("处理文件 "+filename+" 时发生错误", err)                    return                }                // 刷新缓冲区并保存输出文件                writer.Flush()                fmt.Printf("已处理文件 %s,并将结果保存到 增加掩码_%sn", filename, filename)            }(filename)        }    }    // 等待所有文件处理完成    wg.Wait()}
  • 编译成可执行程序

go自动给txt的每行行尾增加/32



go自动给txt的每行行尾增加/32



原文始发于微信公众号(echoabced):go自动给txt的每行行尾增加/32

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月26日02:30:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   go自动给txt的每行行尾增加/32http://cn-sec.com/archives/2141266.html

发表评论

匿名网友 填写信息