18/03/2016 │ 27/07/2016 │ 24/06/2016 │ 07/07/2016 │ 01/01/1900 │ 01/11/2016 │ 04/10/2016
─────────────┼─────────────┼─────────────┼────────────────┼────────────────┼────────────────┼──────────────
[row SPAIN] │ [row SPAIN] │ [row SPAIN] │ [row COLOMBIA] │ [row COLOMBIA] │ [row COLOMBIA] │ [row TURKEY]
━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━
```
What we have as a result is a kind of (row, column) grouping of the table data, which would allow you to graph for each date on one axis, and for each origin on the other.
## default and compact (andrasio)
One of the sticky issues working with tables is that sometimes you'll have gaps in the data. Perhaps there just isn't a value for that row.
To help with that, we've added two new commands: `default` and `compact`.
Default, as the name implies, will allow you to give blank spots a default value. Compact instead will allow you to remove a row if there's a blank in that position.
Here's an example of default:
```shell
> open amigos.json | get amigos
━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━
# │ name │ rusty_luck
───┼───────────┼────────────
0 │ Yehuda │ 1
1 │ Sophia │ 1
2 │ Andres │ 1
3 │ GorbyPuff │
━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━
```
We can default the missing column from the table like this:
```shell
> open amigos.json | get amigos | default rusty_luck 1 giving:
━━━┯━━━━━━━━━━┯━━━━━━━━━━━━
# │ name │ rusty_luck
───┼──────────┼────────────
0 │ Yehuda │ 1
1 │ Sophia │ 1
2 │ Andres │ 1
3 │ GorbyPuff│ 1
━━━┷━━━━━━━━━━┷━━━━━━━━━━━━
```
## format (sophiajt)
To add to the abilities of outputting tables of various into readable strings, we've recently added the `format` command. This allows you to convert table data into a string by following a formatting pattern:
```shell
> ls | format "name is {name}"
━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# │ <value>
────┼────────────────────────────
0 │ name is .azure
1 │ name is features.toml
2 │ name is Cargo.toml
3 │ name is LICENSE
4 │ name is target
5 │ name is images
6 │ name is tests
```
## from-xlsx (sophiajt)
We now have an early start at Excel support. With it, you can now import Excel files as tables.
# On-going improvements
Lots of improvements to existing commands this time around.
## Simple and full `ls` (sophiajt)
To make `ls` work better on smaller terminals (including the bog standard 80x24 login size), we've shrunk `ls` a tiny bit by default. Have no worry, though, the original columns and more are available in the new `ls --full`.
## Fuzzy matching (bndbsh)
```shell
❯ ls | where name =~ "yml"
━━━━━━━━━━━━━┯━━━━━━┯━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━━━
name │ type │ size │ accessed │ modified
─────────────┼──────┼───────┼────────────┼────────────
.gitpod.yml │ File │ 780 B │ a week ago │ a week ago
━━━━━━━━━━━━━┷━━━━━━┷━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━
```
A long-requested feature is the ability to match strings a bit more fuzzily. With 0.6.0, you'll be able to do just that with the new `=~` (fuzzy match to include) and `!~` (fuzzy match to exclude) commands.