# Slice
Slice is a command-line tool written in Rust that allows you to slice the contents of a file using syntax similar to Python's slice notation.

[![Crates.io][crates-badge]][crates-url]
[crates-badge]: https://img.shields.io/crates/v/slice-command.svg
[crates-url]: https://crates.io/crates/slice-command
## Installation
### Via Homebrew
```sh
brew install chantsune/tap/slice
```
### Via Nix
```sh
nix-env --install -f https://github.com/chantsune/slice/tarball/main
```
### Via Cargo
```sh
cargo install slice-command
```
### From Source (via Cargo)
```sh
git clone https://github.com/ChanTsune/slice.git
cd slice
cargo install --path .
```
After building, add the binary to your PATH to use it globally.
## Usage
To use `slice`, run the following command:
```
slice [options] <slice> <file...>
```
`<file>` is the name of the file you want to slice, and `<slice>` is the slice syntax you want to apply to the file.
If `<file>` is not specified, `slice` will read from standard input.
The slice syntax is similar to Python's slice syntax, with the format `start:end:step`.
Each value is optional and, if omitted, defaults to the beginning of the file, the end of the file, and a step of 1, respectively.
## Examples
Here are some examples of how to use `slice`:
```sh
slice 10:20 file.txt
```
This command slices the contents of `file.txt` from line 10 to line 20.
```sh
slice :100:2 file.txt
```
This command slices the contents of `file.txt` from the beginning of the file to line 100, skipping every second line.
```sh
slice 5:+10 file.txt
```
This command is the same as `slice` 5:15 file.txt`.
For more details, run:
```sh
slice --help
```
## Docker
```sh
docker build -t slice .
docker run -v `pwd`:`pwd` -w `pwd` --rm -i slice
```
## License
Dual-licensed under [MIT](LICENSE-MIT) or [Apache-2.0](LICENSE-APACHE).