WIP pet project.
yargs
aims to be the xargs
equivalent to tabular input. It borrows from awk
the its ability to work on columns of text and allows for arbitrary
commands to be applied per column in a similar way to xargs
.
The columns are called fields
. The command to execute on each field is called
an y-arg
.
- passing column yargs as fields
foo_cmd | yargs --field-1='basename {}' --field-2="awk { print $1 }"
foo_cmd | yargs -f1 'basename {}' -f2 'awk { print $1 }'
- Passing
yargs
as positional arguments
foo_cmd | yargs 'basename {}' 'awk { print $2 }'
- skipping fields
foo_cmd | yargs 'basename {}' - 'awk { print $2 }'
# keeps the second field unchanged
input:
field #1 field #2
|--------------------------| |--------------|
/long/path/to/some/ebook.pdf | Title Of Ebook
____
|
example usage: | y-arg
-------------- |
----------------
yargs 'basename {}' "awk { print $1 }"
#OR
yargs -f1 'basename {}' -f2 'awk { print $1 }'
would output: ebook.pdf | Title
- use colon as delimiter
yargs -d':' -f1 '...'