Реализован синтаксический анализатор журнала на GO, в данный момент программа принимает параметр пути в этом формате, например / var / log / 2019 / 2019-05 / 2019-05-27 /, только анализирует текущую папку и возвращает полную пути к файлам, я хотел бы знать, и как реализовать пути синтаксического анализатора для файлов в форме, такие как --datastart / var / log / 2019 / 2019-05 / 2019-05-01 / --dataend / var / log / 2019 / 2019-05 / 2019-05-31 /, чтобы проанализировать определенный диапазон дат, которые разделены на папки.
Пример дерева каталогов
2019
|
-...
-2019-04
|
-2019-04-01
|
-....
-2019-03-30
-2019-05
|
-2019-05-01
|
...
|
-2019-05-31
-...
Моя функция для получения файлов каталогов:
func WalkFile(done <- chan struct{},root string)(<-chan string,<-chan error){
paths := make(chan string)
errc := make(chan error,1)
go func() {
defer close(paths)
errc <- filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil{
return err
}
if !info.Mode().IsRegular(){
return nil
}
select {
case paths <- path:
case <-done:
return nil
}
return nil
})
}()
return paths,errc
}