rew 0.3.0

A text processing CLI tool that rewrites FS paths according to a pattern.
Documentation
# ⌨️ Input

By default, input values are read as lines from standard input.
Each line is expected to be terminated either by `LF` or `CR+LF` characters.
The last line (before `EOF`) does not need to have a terminator.

- Use `-t, --read` option to read values terminated by a specific character.
- Use `-z, --read-nul` flag to read values terminated by `NUL` character.
- Use `-r, --read-raw` flag to read whole input into memory as a single value.
- Use `-l, --read-end` flag to read the last value (before `EOF`) only if it is properly terminated.

The following table shows how an input would be parsed for valid combinations of flags/options:

| Input    | *(no flag)* | `-l`     | `-z`     | `-lz`    | `-t:`    | `-lt:`   | `-r`    |
| -------- | ----------- | -------- | -------- | -------- | -------- | -------- | ------- |
| `a\nb`   | `a`, `b`    | `a`      | `a\nb`   | *(none)* | `a\nb`   | *(none)* |`a\nb`   |
| `a\nb\n` | `a`, `b`    | `a`, `b` | `a\nb\n` | *(none)* | `a\nb\n` | *(none)* |`a\nb\n` |
| `a\0b`   | `a\0b`      | *(none)* | `a`, `b` | `a`      | `a\0b`   | *(none)* |`a\0b`   |
| `a\0b\0` | `a\0b\0`    | *(none)* | `a`, `b` | `a`, `b` | `a\0b\0` | *(none)* |`a\0b\0` |
| `a:b`    | `a:b`       | *(none)* | `a:b`    | *(none)* | `a`, `b` | `a`      |`a:b`    |
| `a:b:`   | `a:b:`      | *(none)* | `a:b:`   | *(none)* | `a`, `b` | `a`, `b` |`a:b:`   |

Input values can be also passed as additional arguments.
In such case, standard input will not be read.

```bash
rew '{}' image.jpg *.txt # Wildcard expansion is done by shell
```

Use flag `-I, --no-stdin` to enforce this behaviour even if there are no additional arguments.

```bash
echo a | rew '{}'       # Will print "a"
echo a | rew '{}' b     # Will print "b"
echo a | rew -I '{}'    # Will print nothing
echo a | rew -I '{}' b  # Will print "b"
```