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.

1.5 KiB

Very much work in progress. This is the first project in my Rust learning journey. Expect a lot of changes and refactoring.

Colmap

Colmap is hybrid between awk in xargs. It borrows from the former its ability to work on tabular 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 x-arg.

Example

input:

         field #1                 field #2
|--------------------------|   |--------------|
/long/path/to/some/ebook.pdf   | Title Of Ebook
                                 ____
                                  \
example usage:                     \
--------------                      \__________________
                                                    ___\_
colmap --field-1='basename {}'  --field-2="awk { print $1 }"
                                          _________________|: x-arg

#OR
colmap -f1 'basename {}' -f2 'awk { print $1 }'

would output: ebook.pdf | Title

  • use colon as delimiter

colmap -d':' -f1 '...'

Ways of passing x-args

  1. passing column x-args as fields
foo_cmd | colmap --field-1='basename {}'  --field-2="awk { print $1 }"
foo_cmd | colmap -f1 'basename {}' -f2 'awk { print $1 }'
  1. Passing an xarg template
foo_cmd | colmap -t 'basename {}' 'awk { print $2 }'

I am using Github under protest

TODO:

[ ] use non-dashed approach to cli (rwxrob/bonzai)