标签:ring print 数据 ace .com efi 语言 err size
package main import ( "bufio" "fmt" "io" "os" "regexp" "strings" ) func main() { fileName := "log.log" file, err := os.OpenFile(fileName, os.O_RDWR, 0666) if err != nil { fmt.Println("Open file error!", err) return } defer file.Close() stat, err := file.Stat() if err != nil { panic(err) } var size = stat.Size() fmt.Println("file size=", size) buf := bufio.NewReader(file) f, err := os.Create("筛选的数据.txt") defer f.Close() for { line, err := buf.ReadString(‘\n‘) line = strings.TrimSpace(line) go findLine(line) if err != nil { if err == io.EOF { fmt.Println("File read ok!") break } else { fmt.Println("Read file error!", err) return } } } } func findLine(line string) { str := line ipret := regexp.MustCompile(`([0-9]{1,3}\.){3}[0-9]{1,3}`) timeret := regexp.MustCompile(`\[(.+)\]`) articleret := regexp.MustCompile(`http://www.neusoft.com/article/[0-9]{1,4}`) videoret := regexp.MustCompile(`http://www.neusoft.com/video/[0-9]{1,4}`) ip := ipret.FindAllStringSubmatch(str, -1) time := timeret.FindAllStringSubmatch(str, -1) article := articleret.FindAllStringSubmatch(str, -1) video := videoret.FindAllStringSubmatch(str, -1) f, err := os.OpenFile("筛选的数据.txt", os.O_WRONLY, 0644) if err != nil { fmt.Println("cacheFileList.yml file create failed. err: " + err.Error()) } else { /*fmt.Println("all:", alls)*/ /*fmt.Println("all:", alls)*/ if ip != nil { n, _ := f.Seek(0, os.SEEK_END) // 从末尾的偏移量开始写入内容 _, err = f.WriteAt([]byte("ip:\t"+ip[0][0]+"/t"), n) fmt.Printf("ip:%s\t", ip[0][0]) } for _, one := range time { n, _ := f.Seek(0, os.SEEK_END) // 从末尾的偏移量开始写入内容 _, err = f.WriteAt([]byte("time:\t"+one[0]+"/t"), n) fmt.Printf("时间:%s\t", one[0]) } for _, one := range article { n, _ := f.Seek(0, os.SEEK_END) // 从末尾的偏移量开始写入内容 _, err = f.WriteAt([]byte("article:\t"+one[0]+"/t"), n) fmt.Printf("时间:%s\t", one[0]) } for _, one := range video { n, _ := f.Seek(0, os.SEEK_END) // 从末尾的偏移量开始写入内容 _, err = f.WriteAt([]byte("video:\t"+one[0]+"/t"), n) fmt.Printf("时间:%s\t", one[0]) } n, _ := f.Seek(0, os.SEEK_END) _, err = f.WriteAt([]byte("\n"), n) } }
标签:ring print 数据 ace .com efi 语言 err size
原文地址:https://www.cnblogs.com/miria-486/p/10066916.html