Skip to content

TheAlgorythm/zsplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zsplit

GPL 3.0 License Workflow Status Crates.io crev reviews

Split text into multiple files by line.

Usage

$ zsplit --help
zsplit 0.4.0
ZSchoen <dev@zschoen.dev>
Split text into multiple files by line

USAGE:
    zsplit [OPTIONS] <SOURCE> <DESTINATIONS>...

ARGS:
    <SOURCE>             The file which should be splitted. Use '-' for piping the content to
                         zsplit
    <DESTINATIONS>...    A list of destinations for the splitted contents

OPTIONS:
    -d, --distributions <DISTRIBUTIONS>...
            Defines how many lines are assigned to a destination. The distributions have to be in
            the same order as the destinations. It defaults to 1

    -f, --line-factor <LINE_FACTOR>
            A factor to multiply the grouping size of the distribution [default: 1]

    -h, --help
            Print help information

    -V, --version
            Print version information

It splits the input into single lines and writes them Round Robin like to the output files.

Examples

Setup

$ seq 0 9 >test_folder/ten.txt; cat test_folder/ten.txt
0
1
2
[...]
8
9

Simple

$ zsplit test_folder/ten.txt test_folder/{a,b,c}
$ cat test_folder/a
0
3
6
9
$ cat test_folder/b
1
4
7
$ cat test_folder/c
2
5
8

Visualisation of simple

Unsymmetric Distribution

$ zsplit test_folder/ten.txt test_folder/{a,b,c} --distribution 3 3 # The last distribution value is implicitly 1
$ cat test_folder/a
0
1
2
7
8
9
$ cat test_folder/b
3
4
5
$ cat test_folder/c
6

Visualisation of unsymmetric distribution

Multiple Lines

$ zsplit test_folder/ten.txt test_folder/{a,b,c} --line-factor 2
$ cat test_folder/a
0
1
6
7
$ cat test_folder/b
2
3
8
9
$ cat test_folder/c
4
5

Visualisation of multiple lines

Installation

Cargo

$ cargo install zsplit-cli

CREV - Rust code reviews - Raise awareness

Please, spread this info !
Open source code needs a community effort to express trustworthiness.
Start with reading the reviews of the crates you use. Example: web.crev.dev/rust-reviews/crate/num-traits/
Than install the CLI cargo-crev. Read the Getting Started guide.
On your Rust project, verify the trustworthiness of all dependencies, including transient dependencies with cargo crev verify
Write a new review !
Describe the crates you trust. Or warn about the crate versions you think are dangerous.
Help other developers, inform them and share your opinion.
Use the helper on this webpage: web.crev.dev/rust-reviews/review_new