split list for filters

Split a list into multiple lists using a separator.

Signature

> split list (separator) --regex

Parameters

  • separator: the value that denotes what separates the list
  • --regex (-r): separator is a regular expression, matching values that can be coerced into a string

Examples

Split a list of chars into two lists

> [a, b, c, d, e, f, g] | split list d
╭───┬───────────╮
│ 0 │ ╭───┬───╮ │
│   │ │ 0 │ a │ │
│   │ │ 1 │ b │ │
│   │ │ 2 │ c │ │
│   │ ╰───┴───╯ │
│ 1 │ ╭───┬───╮ │
│   │ │ 0 │ e │ │
│   │ │ 1 │ f │ │
│   │ │ 2 │ g │ │
│   │ ╰───┴───╯ │
╰───┴───────────╯

Split a list of lists into two lists of lists

> [[1,2], [2,3], [3,4]] | split list [2,3]
╭───┬───────────────────╮
│ 0 │ ╭───┬───────────╮ │
│   │ │ 0 │ ╭───┬───╮ │ │
│   │ │   │ │ 01 │ │ │
│   │ │   │ │ 12 │ │ │
│   │ │   │ ╰───┴───╯ │ │
│   │ ╰───┴───────────╯ │
│ 1 │ ╭───┬───────────╮ │
│   │ │ 0 │ ╭───┬───╮ │ │
│   │ │   │ │ 03 │ │ │
│   │ │   │ │ 14 │ │ │
│   │ │   │ ╰───┴───╯ │ │
│   │ ╰───┴───────────╯ │
╰───┴───────────────────╯

Split a list of chars into two lists

> [a, b, c, d, a, e, f, g] | split list a
╭───┬───────────╮
│ 0 │ ╭───┬───╮ │
│   │ │ 0 │ b │ │
│   │ │ 1 │ c │ │
│   │ │ 2 │ d │ │
│   │ ╰───┴───╯ │
│ 1 │ ╭───┬───╮ │
│   │ │ 0 │ e │ │
│   │ │ 1 │ f │ │
│   │ │ 2 │ g │ │
│   │ ╰───┴───╯ │
╰───┴───────────╯

Split a list of chars into lists based on multiple characters

> [a, b, c, d, a, e, f, g] | split list -r '(b|e)'
╭───┬───────────╮
│ 0 │ ╭───┬───╮ │
│   │ │ 0 │ a │ │
│   │ ╰───┴───╯ │
│ 1 │ ╭───┬───╮ │
│   │ │ 0 │ c │ │
│   │ │ 1 │ d │ │
│   │ │ 2 │ a │ │
│   │ ╰───┴───╯ │
│ 2 │ ╭───┬───╮ │
│   │ │ 0 │ f │ │
│   │ │ 1 │ g │ │
│   │ ╰───┴───╯ │
╰───┴───────────╯