blob42 / yargs

execute commands on columns: a hybrid of xargs and awk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
foo_cmd | yargs --field-1='basename {}'  --field-2="awk { print $1 }"
foo_cmd | yargs -f1 'basename {}' -f2 'awk { print $1 }'
  1. Passing yargs as positional arguments
foo_cmd | yargs 'basename {}' 'awk { print $2 }'
  1. skipping fields
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

About

execute commands on columns: a hybrid of xargs and awk


Languages

Language:Rust 100.0%