> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 格式批量生成

[格式批量生成](https://tools.newzone.top/zh/brace-expander)（Brace Expander）解决的是「同一套规则要一次性产出 9 条、100 条名字」的问题：数据库迁移要补 100 个字段名、批量建 URL、批量改文件名、配 SQL 的 `IN (...)`。**写一行规则，它把全部组合都列出来**。

语法就是 bash 的花括号展开，所以**输出与 bash 逐行一致**——你在 shell 里能验证的结果，这里就给一样的。

![格式批量生成界面](/img/brace-expander-zh.webp "格式批量生成使用界面")

:::tip 30 秒上手

1. 上面 **模板** 框写一行，如 `f{1..4}pd_ever_od30_{tag,bal}`
2. 下面实时列出 8 个名字——**空状态下方的示例点一下就直接填进来**
3. 复制或导出；要拼成 SQL / JSON，到「高级设置」

:::

## 模板语法

一行一条模板，多行之间按行序拼接、互不影响。每条模板里的花括号会展开：

| 写法             | 含义                                 |
| -------------- | ---------------------------------- |
| `{1..100}`     | 整数区间，1 到 100                       |
| `{1..100..2}`  | 带步长，1、3、5 …                        |
| `{001..100}`   | 零填充，补到 3 位                         |
| `{a..e}`       | 字母区间，与整数区间同规则，也可带步长 `{a..c..2}`    |
| `{tag,bal}`    | 枚举列表                               |
| `\{` `\}` `\,` | 字面量，反斜杠被吃掉：`a\{b,c\}d` → `a{b,c}d` |

零填充的**宽度只取起始值的字面宽度**，终点不会把宽度缩回去：`{001..10}` 得到 `001 … 010`。要 `f001` 还是 `f1`，自己在模板里写。

## 多组自动做笛卡尔积

多个花括号自己组合，不用写笛卡尔积：

```
f{1..2}_{tag,bal}   →   f1_tag  f1_bal  f2_tag  f2_bal
```

## 输出顺序

「高级设置」里有一个**输出顺序**开关，管的是**多组花括号谁跑得最慢**：

- **交叉**（默认，与 bash 一致）：`{a,b}{1,2}` → `a1 a2 b1 b2`，**左边花括号是外层**。`f{1..4}_tag,bal` 交错出 f1…\_tag、f1…\_bal、f2…\_tag …
- **分组**：同样模板 → `a1 b1 a2 b2`，**右边花括号是外层**，它整个跑完左边才换下一个。需要「先列完全部 tag、再列完全部 bal」时用

两种模式**条目集合完全相同，只换排列**。

多行模板之间永远是按行序，这个开关只作用于单行内的多组花括号。

## 输出装配

结构是 **前缀 · 行 ⟨连接符⟩ 行 · 后缀**：

- **行间连接符**：默认换行 `\n`；SQL `IN` 用 `, `
- **整体前缀 / 后缀**：整个结果的开头与结尾，例如 JSON 数组的 `[\n` 与 `\n]`

常见配方：

- **字段名** — 模板 `f{1..100}pd_ever_od30_{tag,bal}`
- **URL 清单** — `https://example.com/{a,b,c}/{1..20}`
- **文件名** — `img_{001..100}.png`
- **SQL `IN (...)`** — 模板 `'{1}'`，连接符 `, `，前缀 `IN (`、后缀 `)`
- **SQL `INSERT`** — 模板 `('{1}', '{2}')`，连接符 `,\n`，前缀 `INSERT INTO t (a, b) VALUES\n`、后缀 `;`
- **JSON 数组** — 模板 `"{1}"`，连接符 `,\n`，前缀 `[\n`、后缀 `\n]`

## 历史模板

反复要用的那几行配方可以**存进历史**，下次一键取回。历史为空时这一行不出现在首屏——存第一条之后它自己回来。

## 边界

- **单次上限 10,000 行**，这是与 bash 的一处有意偏离（bash 没有上限）。超限时**不产出部分结果**，而是说明原因，让你把区间改小，免得把半截清单当成完整结果用
- **分组顺序不是 bash 的行为**，见上文
- **写错的地方会原样留着**：`{a}`、`{1..}`、`{1..3.5}` 不是合法写法，会原样输出而不是报错——模板哪里坏了，一眼就能看出来
