#shell #nushell-plugin #string #parser #template-string #template

bin+lib nu-plugin-bexpand

适用于 nushell 的与 Bash 兼容的花括号展开插件

20 个稳定版本

1.3.9 2024年7月24日
1.3.7 2024年5月31日
1.3.4 2024年3月6日
1.3.1 2023年11月15日
1.1.5 2023年6月25日

400解析器实现

Download history 137/week @ 2024-04-29 11/week @ 2024-05-20 151/week @ 2024-05-27 16/week @ 2024-06-03 6/week @ 2024-06-10 180/week @ 2024-06-24 19/week @ 2024-07-01 118/week @ 2024-07-22 7/week @ 2024-07-29

每月125 次下载

MPL-2.0 和可能 CC-PDDC

17KB
171

nu-plugin-bexpand

nushell 中的 Bash 风格花括号展开。

格式和功能

格式规范和功能在 bexpand crate 中有详细说明,该 crate 实现了解析器和迭代器类型,独立于 nushell。

用法

> cargo install nu-plugin-bexpand
...

> register ~/.cargo/bin/nu_plugin_bexpand

> help str bexpand
Bash-style brace expansion

Usage:
  > str bexpand 

Flags:
  -h, --help - Display the help message for this command

Signatures:
  <string> | str bexpand -> list<string>
  list<string> | str bexpand -> list<string>

Examples:
  Get a list of standard nushell config items
  > '~/config/nushell/{env,config,plugin}.nu' | str bexpand

> 'a{b,c,d{🥰..🥴..2}e}f' | str bexpand
╭───┬────────╮
│ 0 │ abf    │
│ 1 │ acf    │
│ 2 │ ad🥰ef │
│ 3 │ ad🥲ef │
│ 4 │ ad🥴ef │
╰───┴────────╯
 
> 'a{1..3}c{4..6..2}b' | str bexpand
╭───┬───────╮
│ 0 │ a1c4b │
│ 1 │ a1c6b │
│ 2 │ a2c4b │
│ 3 │ a2c6b │
│ 4 │ a3c4b │
│ 5 │ a3c6b │
╰───┴───────╯

> [a{🤐..🤒}b c{🧛..🦜..31}d e{15..-23..8}f] | str bexpand
╭────┬───────╮
│  0 │ a🤐b  │
│  1 │ a🤑b  │
│  2 │ a🤒b  │
│  3 │ c🧛d  │
│  4 │ c🦼d  │
│  5 │ c🦝d  │
│  6 │ e15f  │
│  7 │ e7f   │
│  8 │ e-1f  │
│  9 │ e-9f  │
│ 10 │ e-17f │
╰────┴───────╯

> '{0..🧿..129300}' | str bexpand
╭───┬────╮
│ 00  │
│ 1 │ 🥄 │
╰───┴────╯

> ['success{a,b,c}test' 'fail{test'] | str bexpand
Error:   × Brace expression failed to parse
   ╭─[entry #13:1:1]
 1['success{a,b,c}test' 'fail{test'] | str bexpand
   ·                       ─────┬─────
   ·                            ╰── 0: at line 1, in Eof:
fail{test
    ^


   ╰────

> "{\u{D7FF}..\u{E000}}" | str bexpand
Error:   × Expression failed to generate
   ╭─[entry #15:1:1]
 1"{\u{D7FF}..\u{E000}}" | str bexpand
   ·                          ─────┬─────
   ·                               ╰── converted integer out of range for `char`
   ╰────

依赖项

~25–58MB
~1M SLoC