1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
# filepathx
> A small `filepath` extension library that supports double star globbling.
## Documentation
GoDoc: <https://pkg.go.dev/github.com/yargevad/filepathx>
## Install
```bash
go get github.com/yargevad/filepathx
```
## Usage Example
You can use `a/**/*.*` to match everything under the `a` directory
that contains a dot, like so:
```go
package main
import (
"fmt"
"os"
"github.com/yargevad/filepathx"
)
func main() {
if 2 != len(os.Args) {
fmt.Println(len(os.Args), os.Args)
fmt.Fprintf(os.Stderr, "Usage: go build example/find/*.go; ./find <pattern>\n")
os.Exit(1)
return
}
pattern := os.Args[1]
matches, err := filepathx.Glob(pattern)
if err != nil {
panic(err)
}
for _, match := range matches {
fmt.Printf("MATCH: [%v]\n", match)
}
}
```
Given this directory structure:
```bash
find a
```
```txt
a
a/b
a/b/c.d
a/b/c.d/e.f
```
This will be the output:
```bash
go build example/find/*.go
./find 'a/**/*.*'
```
```txt
MATCH: [a/b/c.d]
MATCH: [a/b/c.d/e.f]
```
|