package main import ( "flag" "fmt" "os" "path/filepath" "regexp" ) func main() { flag.Parse() if flag.NArg() == 0 { fmt.Println("Usage: cleaner ") os.Exit(1) } // regex to match " - 2025-07-08 01h31m45s - " re := regexp.MustCompile(` - (\d{4}-\d{2}-\d{2} \d{2}h\d{2}m\d{2}s) - `) for _, file := range flag.Args() { info, err := os.Stat(file) if err != nil { fmt.Printf("ERROR: %v\n", err) continue } if info.IsDir() { fmt.Printf("SKIP (directory): %s\n", file) continue } name := filepath.Base(file) match := re.FindStringSubmatch(name) if match == nil { fmt.Printf("SKIP (no date pattern): %s\n", name) continue } newName := match[1] + filepath.Ext(name) if name == newName { fmt.Printf("SKIP (already named): %s\n", name) continue } if _, err := os.Stat(newName); err == nil { fmt.Printf("SKIP (target exists): %s -> %s\n", name, newName) continue } err = os.Rename(name, newName) if err != nil { fmt.Printf("ERROR renaming %s: %v\n", name, err) } else { fmt.Printf("RENAMED: %s -> %s\n", name, newName) } continue } }