path parse
for path
Convert a path into structured data.
Signature
> path parse {flags}
Flags
--extension, -e {string}
: Manually supply the extension (without the dot)
Input/output types:
input | output |
---|---|
list<string> | table |
string | record |
Examples
Parse a path
> '/home/viking/spam.txt' | path parse
╭───────────┬──────────────╮
│ parent │ /home/viking │
│ stem │ spam │
│ extension │ txt │
╰───────────┴──────────────╯
Replace a complex extension
> '/home/viking/spam.tar.gz' | path parse --extension tar.gz | upsert extension { 'txt' }
Ignore the extension
> '/etc/conf.d' | path parse --extension ''
╭───────────┬────────╮
│ parent │ /etc │
│ stem │ conf.d │
│ extension │ │
╰───────────┴────────╯
Parse all paths in a list
> [ /home/viking.d /home/spam.txt ] | path parse
╭───┬────────┬────────┬───────────╮
│ # │ parent │ stem │ extension │
├───┼────────┼────────┼───────────┤
│ 0 │ /home │ viking │ d │
│ 1 │ /home │ spam │ txt │
╰───┴────────┴────────┴───────────╯
Notes
Each path is split into a table with 'parent', 'stem' and 'extension' fields. On Windows, an extra 'prefix' column is added.