Go Glob()

1 개요[ | ]

Go Glob()

2 yaml & yml[ | ]

Go
Copy
package main

import (
	"fmt"
	"os/exec"
	"path/filepath"
)

func init() {
	exec.Command("touch", "/tmp/hello.yaml").Run()
	exec.Command("touch", "/tmp/world.yml").Run()
}

func main() {
	files, _ := filepath.Glob("/tmp/*.y*ml")
	fmt.Println(files)
}
Loading

3 ** not working[ | ]

Go
Copy
package main

import (
	"fmt"
	"os"
	"os/exec"
	"path/filepath"
)

func init() {
	os.MkdirAll("/tmp/aaa/bbb/ccc", 0755)
	exec.Command("touch", "/tmp/111.yaml").Run()
	exec.Command("touch", "/tmp/aaa/222.yaml").Run()
	exec.Command("touch", "/tmp/aaa/333.yml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/444.yaml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/555.yaml").Run()
}

func main() {
	files1, _ := filepath.Glob("/tmp/*/*.y*ml")
	files2, _ := filepath.Glob("/tmp/**/*.y*ml")
	files3, _ := filepath.Glob("/tmp/***/*.y*ml")

	fmt.Println(files1) // [/tmp/aaa/222.yaml /tmp/aaa/333.yml]
	fmt.Println(files2) // [/tmp/aaa/222.yaml /tmp/aaa/333.yml]
	fmt.Println(files3) // [/tmp/aaa/222.yaml /tmp/aaa/333.yml]
}
Loading
Go
Copy
package main

import (
	"fmt"
	"os"
	"os/exec"
	"path/filepath"
)

func init() {
	os.MkdirAll("/tmp/aaa/bbb/ccc", 0755)
	exec.Command("touch", "/tmp/111.yaml").Run()
	exec.Command("touch", "/tmp/aaa/222.yaml").Run()
	exec.Command("touch", "/tmp/aaa/333.yml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/444.yaml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/555.yaml").Run()
}

func main() {
	files1, _ := filepath.Glob("/tmp/*.y*ml")
	files2, _ := filepath.Glob("/tmp/*/*.y*ml")
	files3, _ := filepath.Glob("/tmp/*/*/*.y*ml")

	files := []string{}
	files = append(files, files1...)
	files = append(files, files2...)
	files = append(files, files3...)

	fmt.Println(files1) // [/tmp/111.yaml]
	fmt.Println(files2) // [/tmp/aaa/222.yaml /tmp/aaa/333.yml]
	fmt.Println(files3) // [/tmp/aaa/bbb/444.yaml /tmp/aaa/bbb/555.yaml]
	fmt.Println(files)  // [/tmp/111.yaml /tmp/aaa/222.yaml /tmp/aaa/333.yml /tmp/aaa/bbb/444.yaml /tmp/aaa/bbb/555.yaml]
}
Loading
Go
Copy
package main

import (
	"fmt"
	"os"
	"os/exec"
	"path/filepath"
)

func init() {
	os.MkdirAll("/tmp/aaa/bbb/ccc", 0755)
	exec.Command("touch", "/tmp/111.yaml").Run()
	exec.Command("touch", "/tmp/aaa/222.yaml").Run()
	exec.Command("touch", "/tmp/aaa/333.yml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/444.yaml").Run()
	exec.Command("touch", "/tmp/aaa/bbb/555.yaml").Run()
}

func main() {
	files1, _ := filepath.Glob(filepath.Join("/", "tmp", "*.y*ml"))
	files2, _ := filepath.Glob(filepath.Join("/", "tmp", "*", "*.y*ml"))
	files3, _ := filepath.Glob(filepath.Join("/", "tmp", "*", "*", "*.y*ml"))

	files := []string{}
	files = append(files, files1...)
	files = append(files, files2...)
	files = append(files, files3...)

	fmt.Println(files1) // [/tmp/111.yaml]
	fmt.Println(files2) // [/tmp/aaa/222.yaml /tmp/aaa/333.yml]
	fmt.Println(files3) // [/tmp/aaa/bbb/444.yaml /tmp/aaa/bbb/555.yaml]
	fmt.Println(files)  // [/tmp/111.yaml /tmp/aaa/222.yaml /tmp/aaa/333.yml /tmp/aaa/bbb/444.yaml /tmp/aaa/bbb/555.yaml]
}
Loading

4 같이 보기[ | ]