You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.4 KiB
Markdown
64 lines
1.4 KiB
Markdown
WIP pet project.
|
|
|
|
# yargs
|
|
|
|
`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`.
|
|
|
|
# Usage
|
|
|
|
1. passing column yargs as fields
|
|
|
|
```shell
|
|
foo_cmd | yargs --field-1='basename {}' --field-2="awk { print $1 }"
|
|
foo_cmd | yargs -f1 'basename {}' -f2 'awk { print $1 }'
|
|
```
|
|
|
|
2. Passing `yargs` as positional arguments
|
|
|
|
```shell
|
|
foo_cmd | yargs 'basename {}' 'awk { print $2 }'
|
|
```
|
|
|
|
3. skipping fields
|
|
```shell
|
|
foo_cmd | yargs 'basename {}' - 'awk { print $2 }'
|
|
# keeps the second field unchanged
|
|
```
|
|
|
|
## Example
|
|
|
|
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 '...'`
|
|
|
|
|
|
|
|
---
|
|
[I am using Github under protest](protest.md)
|
|
|
|
|