Nushell
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
  • Categories

    • Bits
    • Bytes
    • Chart
    • Conversions
    • Core
    • Database
    • Dataframe
    • Dataframe Or Lazyframe
    • Date
    • Debug
    • Default
    • Env
    • Experimental
    • Expression
    • Filesystem
    • Filters
    • Formats
    • Generators
    • Hash
    • History
    • Lazyframe
    • Math
    • Misc
    • Network
    • Path
    • Platform
    • Plugin
    • Prompt
    • Random
    • Removed
    • Shells
    • Strings
    • System
    • Viewers

from kdl for formats

Convert KDL text into structured data.

Signature

> from kdl {flags}

Input/output types:

inputoutput
stringany

Examples

Converts KDL formatted string to canonical node rows.

> "node attr=1 attr2=#true {bloc}" | from kdl
╭───┬──────┬────────────────┬──────────────────┬─────────────────────────────────────────────────────────────╮
│ # │ name │      args      │      props       │                          children                           │
├───┼──────┼────────────────┼──────────────────┼─────────────────────────────────────────────────────────────┤
│ 0 │ node │ [list 0 items] │ ╭───────┬──────╮ │ ╭───┬──────┬────────────────┬───────────────────┬─────────╮ │
│   │      │                │ │ attr  │ 1    │ │ │ # │ name │      args      │       props       │ childre │ │
│   │      │                │ │ attr2 │ true │ │ │   │      │                │                   │ n       │ │
│   │      │                │ ╰───────┴──────╯ │ ├───┼──────┼────────────────┼───────────────────┼─────────┤ │
│   │      │                │                  │ │ 0 │ bloc │ [list 0 items] │ {record 0 fields} │ [list 0 │ │
│   │      │                │                  │ │   │      │                │                   │  items] │ │
│   │      │                │                  │ ╰───┴──────┴────────────────┴───────────────────┴─────────╯ │
╰───┴──────┴────────────────┴──────────────────┴─────────────────────────────────────────────────────────────╯

Converts KDL formatted string to canonical node rows.

> 'package { name nu; version 0.1; description "new type of shell" }' | from kdl
╭───┬─────────┬────────────────┬───────────────────┬─────────────────────────────────────────────────────────╮
│ # │  name   │      args      │       props       │                        children                         │
├───┼─────────┼────────────────┼───────────────────┼─────────────────────────────────────────────────────────┤
│ 0 │ package │ [list 0 items] │ {record 0 fields} │ ╭───┬─────────────┬───────────────────────────┬───┬───╮ │
│   │         │                │                   │ │ # │    name     │           args            │ p │ c │ │
│   │         │                │                   │ │   │             │                           │ r │ h │ │
│   │         │                │                   │ │   │             │                           │ o │ i │ │
│   │         │                │                   │ │   │             │                           │ p │ l │ │
│   │         │                │                   │ │   │             │                           │ s │ d │ │
│   │         │                │                   │ │   │             │                           │   │ r │ │
│   │         │                │                   │ │   │             │                           │   │ e │ │
│   │         │                │                   │ │   │             │                           │   │ n │ │
│   │         │                │                   │ ├───┼─────────────┼───────────────────────────┼───┼───┤ │
│   │         │                │                   │ │ 0 │ name        │ ╭───┬────╮                │ { │ [ │ │
│   │         │                │                   │ │   │             │ │ 0 │ nu │                │ r │ l │ │
│   │         │                │                   │ │   │             │ ╰───┴────╯                │ e │ i │ │
│   │         │                │                   │ │   │             │                           │ c │ s │ │
│   │         │                │                   │ │   │             │                           │ o │ t │ │
│   │         │                │                   │ │   │             │                           │ r │   │ │
│   │         │                │                   │ │   │             │                           │ d │ 0 │ │
│   │         │                │                   │ │   │             │                           │   │   │ │
│   │         │                │                   │ │   │             │                           │ 0 │ i │ │
│   │         │                │                   │ │   │             │                           │   │ t │ │
│   │         │                │                   │ │   │             │                           │ f │ e │ │
│   │         │                │                   │ │   │             │                           │ i │ m │ │
│   │         │                │                   │ │   │             │                           │ e │ s │ │
│   │         │                │                   │ │   │             │                           │ l │ ] │ │
│   │         │                │                   │ │   │             │                           │ d │   │ │
│   │         │                │                   │ │   │             │                           │ s │   │ │
│   │         │                │                   │ │   │             │                           │ } │   │ │
│   │         │                │                   │ │ 1 │ version     │ ╭───┬──────╮              │ { │ [ │ │
│   │         │                │                   │ │   │             │ │ 0 │ 0.10 │              │ r │ l │ │
│   │         │                │                   │ │   │             │ ╰───┴──────╯              │ e │ i │ │
│   │         │                │                   │ │   │             │                           │ c │ s │ │
│   │         │                │                   │ │   │             │                           │ o │ t │ │
│   │         │                │                   │ │   │             │                           │ r │   │ │
│   │         │                │                   │ │   │             │                           │ d │ 0 │ │
│   │         │                │                   │ │   │             │                           │   │   │ │
│   │         │                │                   │ │   │             │                           │ 0 │ i │ │
│   │         │                │                   │ │   │             │                           │   │ t │ │
│   │         │                │                   │ │   │             │                           │ f │ e │ │
│   │         │                │                   │ │   │             │                           │ i │ m │ │
│   │         │                │                   │ │   │             │                           │ e │ s │ │
│   │         │                │                   │ │   │             │                           │ l │ ] │ │
│   │         │                │                   │ │   │             │                           │ d │   │ │
│   │         │                │                   │ │   │             │                           │ s │   │ │
│   │         │                │                   │ │   │             │                           │ } │   │ │
│   │         │                │                   │ │ 2 │ description │ ╭───┬───────────────────╮ │ { │ [ │ │
│   │         │                │                   │ │   │             │ │ 0 │ new type of shell │ │ r │ l │ │
│   │         │                │                   │ │   │             │ ╰───┴───────────────────╯ │ e │ i │ │
│   │         │                │                   │ │   │             │                           │ c │ s │ │
│   │         │                │                   │ │   │             │                           │ o │ t │ │
│   │         │                │                   │ │   │             │                           │ r │   │ │
│   │         │                │                   │ │   │             │                           │ d │ 0 │ │
│   │         │                │                   │ │   │             │                           │   │   │ │
│   │         │                │                   │ │   │             │                           │ 0 │ i │ │
│   │         │                │                   │ │   │             │                           │   │ t │ │
│   │         │                │                   │ │   │             │                           │ f │ e │ │
│   │         │                │                   │ │   │             │                           │ i │ m │ │
│   │         │                │                   │ │   │             │                           │ e │ s │ │
│   │         │                │                   │ │   │             │                           │ l │ ] │ │
│   │         │                │                   │ │   │             │                           │ d │   │ │
│   │         │                │                   │ │   │             │                           │ s │   │ │
│   │         │                │                   │ │   │             │                           │ } │   │ │
│   │         │                │                   │ ╰───┴─────────────┴───────────────────────────┴───┴───╯ │
╰───┴─────────┴────────────────┴───────────────────┴─────────────────────────────────────────────────────────╯

Duplicate sibling node names are preserved in-order.

> "node one; node two" | from kdl
╭───┬──────┬─────────────┬───────────────────┬────────────────╮
│ # │ name │    args     │       props       │    children    │
├───┼──────┼─────────────┼───────────────────┼────────────────┤
│ 0 │ node │ ╭───┬─────╮ │ {record 0 fields} │ [list 0 items] │
│   │      │ │ 0 │ one │ │                   │                │
│   │      │ ╰───┴─────╯ │                   │                │
│ 1 │ node │ ╭───┬─────╮ │ {record 0 fields} │ [list 0 items] │
│   │      │ │ 0 │ two │ │                   │                │
│   │      │ ╰───┴─────╯ │                   │                │
╰───┴──────┴─────────────┴───────────────────┴────────────────╯