https://github.com/knwoop/splitter
A small Go utility for splitting a file into smaller ones.
https://github.com/knwoop/splitter
file-split file-splitter go golang
Last synced: about 2 months ago
JSON representation
A small Go utility for splitting a file into smaller ones.
- Host: GitHub
- URL: https://github.com/knwoop/splitter
- Owner: knwoop
- License: mit
- Created: 2020-05-14T15:38:46.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-19T15:28:46.000Z (over 5 years ago)
- Last Synced: 2025-10-11T22:56:15.554Z (4 months ago)
- Topics: file-split, file-splitter, go, golang
- Language: Go
- Homepage:
- Size: 14.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# splitter
A small Go utility for splitting a file into smaller ones.
## Installation
```shell script
$ go get -u github.com/knwoop/splitter
```
## sample cmd
```shell script
$ splitter -path _example/example.csv -sep 3 -head
```
## how to use
```go
package main
import (
"fmt"
"log"
"os"
"github.com/knwoop/splitter"
)
func main() {
f, err := os.Open("test.csv")
if err != nil{
log.Fatal(err)
}
defer f.Close()
readers, err := splitter.Split(f, true, 40)
if err != nil {
log.Fatal(err)
}
...
}
```
## Let's playground
```go
package main
import (
"bytes"
"fmt"
"log"
"strings"
"github.com/knwoop/splitter"
)
var csv = `header1,header2
"1111","22222"
33333,44444
55555,66666
77777,88888`
func main() {
r := strings.NewReader(csv)
readers, err := splitter.Split(r, true, 3)
if err != nil {
log.Fatal(err)
}
buf1 := new(bytes.Buffer)
if _, err := buf1.ReadFrom(readers[0]); err != nil {
log.Fatal(err)
}
buf2 := new(bytes.Buffer)
if _, err := buf2.ReadFrom(readers[1]); err != nil {
log.Fatal(err)
}
fmt.Println(buf1)
fmt.Println(buf2)
}
```