Filter (and map) in a shell pipe.
For the times you need to filter (or map) in a shell pipe.
Filtering (default):
- reads stdin as lines
- runs command for each line
- prints line if command was successful
Mapping (with --map
):
- reads stdin as lines
- runs command for each line
- if command was successful, output its stdout instead of the line
Only list files that contain cats:
ls | fpipe grep -sqi cats {}
Only keep files that do not contain cats:
ls | fpipe -n grep -sqi cats {} # short for --negate
Search for files that contain a list of patterns in the name:
cat patterns | fpipe -m fd {} # short for --map
If {}
is not present in the command arguments, the line is passed to the subprocess via stdin.
If {}
is present, it gets replaced by each input line before execution.
cargo install fpipe
fpipe 0.1.3
Filter (and map) in a shell pipe
'{}' arguments to the command are replaced with input line before execution
Usage: fpipe [OPTIONS] [CMD_AND_ARGS]...
Arguments:
[CMD_AND_ARGS]... Command to execute and its arguments
Options:
-q, --quiet Suppress stdout of command (stderr is still propagated)
-n, --negate Negate the command exit status
-m, --map Perform mapping (only command output is emitted, only if successful)
-h, --help Print help
-V, --version Print version
- more features
- parallelism