package main import ( "io/ioutil" "log" "os" "strings" "time" ) /* 思路: 脚本按照顺序拼接,旧文件按照 utf8 格式清空 */ var splitStr = "/* 202" var endName = ".sql" var endFileName string var History = "/history/" var DBStr = []string{"/MYSQL/update", "/ORACLE/update", "/SHENTONG/update", "/DM/update", "/KingBase/update"} var mapStr = make(map[string]string) var mapInt = make(map[int8]string) //存在所有对象信息 - 集合 func main() { // Todo 合并的SQL文件名称,超过1000行,分割多个文件 endFileName = History + time.Now().Format("20060102") + endName // aaa := os.Args //当前目录数组 var aaa string = "/Users/zhangxianwei/IDEA/hy_sql" for i := range DBStr { kkk := aaa + DBStr[i] getAllFile(kkk) } for s := range mapStr { log.Println(s, mapStr[s]) } } func getAllFile(pwd string) { //获取文件或目录相关信息 fileInfoList, err := ioutil.ReadDir(pwd) if err != nil { log.Fatal(err) } for i := range fileInfoList { if strings.HasSuffix(fileInfoList[i].Name(), endName) { path := pwd + "/" + fileInfoList[i].Name() s := read(path) split := strings.Split(s, splitStr) for i2 := range split { // log.Println(split[i2], "\n") mapStr[path] = s s2 := split[i2] log.Println(s2) } } } } func read(path string) string { f, _ := os.Open(path) all, _ := ioutil.ReadAll(f) return string(all) } /** write 输出到文件 */ func write(s, path string) { file3, _ := os.Create(path) file3.WriteString(s) file3.Close() }