[bash] 借助花括号扩展来批量生成内容

背景

bash 支持花括号扩展,举个例子,使用以下命令可以输出所有的 1 位 16 进制数。

bash 复制代码
echo 0x{0..9} 0x{A..F}

正文

Brace Expansion 一文中介绍了 bash 中的花括号扩展。

Brace Expansion 中提到了如下内容

基本形式

Patterns to be brace expanded take the form of an optional preamble, followed by either a series of comma-separated strings or a sequence expression between a pair of braces, followed by an optional postscript.

从这部分描述中,我们知道花括号扩展有两种基本形式

  • [preamble] + {a,b,c} + [postscript]
  • [preamble] + {x..y[..incr]} + [postscript]

第一种形式的例子

bash 复制代码
echo {red,green,blue}.txt

第二种形式的例子

bash 复制代码
echo {2020..2026}
echo {1..9..2}
echo {a..g}

嵌套形式

Brace Expansion 中提到了如下内容

Brace expansions may be nested. The results of each expanded string are not sorted; left to right order is preserved.

例子

生成所有3位2进制数
bash 复制代码
echo 0b{0,1}{0,1}{0,1}
创建大量文件
bash 复制代码
# 下方的命令会尝试创建 temp 目录并在其中创建 26 * 10 = 260 个文件
mkdir temp && cd temp && touch file-{a..z}{1..10}.txt
创建大量目录
bash 复制代码
# 以下命令会尝试创建 2020,2021,2022,2023,2024,2025,2026 这些目录,
# 并且会尝试在这些目录下创建 01,02,03,04,05,06,07,08,09,10,11,12 子目录
mkdir -p {2020..2026}/{01..12}

参考资料

相关推荐
AnxiangLemon7 天前
Warp Lite :一个专注本地使用的开源终端
终端·shell·warp·warp lite
sbjdhjd10 天前
从污点追踪断点到 PHP-FPM 请求队列:HIDS PHP WebShell 样本复盘
开发语言·网络安全·数据挖掘·渗透测试·开源·php·shell
Shell运维手记13 天前
Shell 结构化命令知识点总结(case、for、while)
运维·microsoft·shell·脚本
云计算练习生13 天前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
猫咪很可爱14 天前
MySQL 5.7 备份恢复后函数与存储过程丢失:原因分析与正确备份姿势
数据库·mysql·bug·shell
qetfw15 天前
Linux 文件清理:find、mtime 与安全传参验证
linux·shell·1024程序员节
Lsetea17 天前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl
DogDaoDao18 天前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Lsetea19 天前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
钱栈up22 天前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell