#column #csv #command-line-tool #pretty-print #numbers #filename #grouped

app shelve

A simple command-line tool to pretty print CSV files grouped by a column

2 releases

0.1.1 Sep 8, 2024
0.1.0 Sep 7, 2024

#41 in Value formatting

Download history 233/week @ 2024-09-02 61/week @ 2024-09-09

294 downloads per month

MIT license

9KB

shelve

A command-line tool written in Rust for pretty-printing CSV files grouped by a specified column or field.

Crates.io Documentation License

Installation

cargo install shelve

Usage

shelve --help

Usage: shelve [OPTIONS] <FILENAME>

Arguments:
  <FILENAME>

Options:
  -c, --column-number <COLUMN_NUMBER>  Column number to group by [default: 0]
  -h, --help                           Print help
  -V, --version                        Print version

Examples

Given the following CSV file containing data about tasks and their status:

Task ID,Task Title,Status,Assignee,Priority
1,Implement feature A,In Progress,John Doe,High
2,Fix bug B,Done,Jane Doe,Low
3,Write tests for feature A,In Progress,John Doe,Medium
4,Refactor code,To Do,Jane Doe,High
5,Deploy to production A and B,To Do,John Doe,Low
6,Write missing documentation for feature A,Done,Peter Foo,Medium
7,Fix bug C,To Do,Alice Bar,High
8,Write tests for feature A,In Progress,John Doe,Low

Grouping by the Status column (column number 2):

shelve -c 2 example.csv

Done:

2, Fix bug B, Done, Jane Doe, Low
6, Write missing documentation for feature A, Done, Peter Foo, Medium

To Do:

4, Refactor code, To Do, Jane Doe, High
5, Deploy to production A and B, To Do, John Doe, Low
7, Fix bug C, To Do, Alice Bar, High

In Progress:

3, Write tests for feature A, In Progress, John Doe, Medium
8, Write tests for feature A, In Progress, John Doe, Low

Grouping by the Priority column (column number 4):

shelve -c 4 example.csv

High:

1, Implement feature A, In Progress, John Doe, High
4, Refactor code, To Do, Jane Doe, High
7, Fix bug C, To Do, Alice Bar, High

Medium:

3, Write tests for feature A, In Progress, John Doe, Medium
6, Write missing documentation for feature A, Done, Peter Foo, Medium

Low:

2, Fix bug B, Done, Jane Doe, Low
5, Deploy to production A and B, To Do, John Doe, Low
8, Write tests for feature A, In Progress, John Doe, Low

Grouping by the Assignee column (column number 3):

shelve -c 3 example.csv

Jane Doe:

2, Fix bug B, Done, Jane Doe, Low
4, Refactor code, To Do, Jane Doe, High

John Doe:

1, Implement feature A, In Progress, John Doe, High
3, Write tests for feature A, In Progress, John Doe, Medium
5, Deploy to production A and B, To Do, John Doe, Low
8, Write tests for feature A, In Progress, John Doe, Low

Peter Foo:

6, Write missing documentation for feature A, Done, Peter Foo, Medium

Alice Bar:

7, Fix bug C, To Do, Alice Bar, High

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

~2.3–3MB
~49K SLoC