nushell/docs/commands/empty.md
JT 25a8caa9b0
Simplify expressions (#3389)
* WIP: experiment with simpler expressions

* fix simple invoke

* update tests

* fix a few tests

* Make paren parsing more robust

* fix external args

* Remove old invocation

* Update tests

* Update tests
2021-05-12 13:01:48 +12:00

3.4 KiB

empty?

Check for empty values. Pass the column names to check emptiness. Optionally pass a block as the last parameter if setting contents to empty columns is wanted.

Examples

Check if a value is empty

> echo '' | empty?
true

Given the following meals

> echo [[meal size]; [arepa small] [taco '']]
═══╦═══════╦═══════
 # ║ meal  ║ size
═══╬═══════╬═══════
 0 ║ arepa ║ small
 1 ║ taco  ║
═══╩═══════╩═══════

Show the empty contents

> echo [[meal size]; [arepa small] [taco '']] | empty? meal size
═══╦═══════╦═══════
 # ║ meal  ║ size
═══╬═══════╬═══════
 0falsefalse
 1falsetrue
═══╩═══════╩═══════

Let's assume we have a report of totals per day. For simplicity we show just for three days 2020/04/16, 2020/07/10, and 2020/11/16. Like so

> echo [[2020/04/16 2020/07/10 2020/11/16]; ['' 27 37]]
═══╦════════════╦════════════╦════════════
 # ║ 2020/04/16 ║ 2020/07/10 ║ 2020/11/16
═══╬════════════╬════════════╬════════════
 0 ║            ║         2737
═══╩════════════╩════════════╩════════════

In the future, the report now has many totals logged per day. In this example, we have 1 total for the day 2020/07/10 and 2020/11/16 like so

> echo [[2020/04/16 2020/07/10 2020/11/16]; ['' [27] [37]]]
═══╦════════════╦════════════════╦════════════════
 # ║ 2020/04/16 ║ 2020/07/10     ║ 2020/11/16
═══╬════════════╬════════════════╬════════════════
 0 ║            ║ [table 1 rows][table 1 rows]
═══╩════════════╩════════════════╩════════════════

We want to add two totals (numbers 33 and 37) for the day 2020/04/16

Set a table with two numbers for the empty column

> echo [[2020/04/16 2020/07/10 2020/11/16]; ['' [27] [37]]] | empty? 2020/04/16 { [33 37] }
═══╦════════════════╦════════════════╦════════════════
 # ║ 2020/04/16     ║ 2020/07/10     ║ 2020/11/16
═══╬════════════════╬════════════════╬════════════════
 0[table 2 rows][table 1 rows][table 1 rows]
═══╩════════════════╩════════════════╩════════════════

Checking all the numbers

> echo [[2020/04/16 2020/07/10 2020/11/16]; ['' [27] [37]]] | empty? 2020/04/16 { [33 37] } | pivot _ totals | get totals
═══╦════
 033
 137
 227
 337
═══╩════