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.

72 lines
1.5 KiB
Markdown

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
```shell
foo_cmd | colmap --field-1='basename {}' --field-2="awk { print $1 }"
foo_cmd | colmap -f1 'basename {}' -f2 'awk { print $1 }'
```
2. Passing an `xarg template`
```shell
foo_cmd | colmap -t 'basename {}' 'awk { print $2 }'
```
---
[I am using Github under protest](protest.md)
TODO:
----
[ ] use non-dashed approach to cli (rwxrob/bonzai)