Home Explore Blog CI



nushell

4th chunk of `blog/2019-11-26-nushell-0_6_0.md`
06a80d009a19ffadab8e49a12310a7f843d0ef7d3841778900000001000011a9
 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.

Title: Nushell 0.6.0: New Features - Default, Compact, Format, From-xlsx, ls improvements, Fuzzy matching
Summary
Nushell 0.6.0 introduces new commands and improvements, including 'default' and 'compact' for handling missing table data, 'format' for converting table data to strings, and 'from-xlsx' for importing Excel files. The 'ls' command is improved with a simplified default output and a '--full' option for the original columns. Additionally, fuzzy matching is added with '=~' and '!~' operators for more flexible string comparisons.