bash - 在给定数字的情况下增加大括号扩展的数量
问题描述
我有一个使用大括号扩展的程序:
for X in {a..z}
do echo $X;
done
我想用提供的数字增加大括号扩展中使用的字母数量。例如,如果提供了数字 3:
for X in {a..z}{a..z}{a..z}
do echo $X;
done
如果提供了数字 5:
for X in {a..z}{a..z}{a..z}{a..z}{a..z}
do echo $X;
done
我怎样才能在 bash 中做到这一点?
解决方案
这是一种方法。与a..z
:
$ a2z() {
k=""
n=$1
while [ $n -gt 0 ]
do
k="{a..z}$k"
let n="$n-1"
done
echo $(eval "echo $k")
}
$ for X in $(a2z 3)
do echo $X;
done
aaa
aab
aac
...
有点有用,或者至少很有趣,0..1
因为它显示了 N 位的每个排列。
$ bitperms() {
k=""
n=$1
while [ $n -gt 0 ]
do
k="{0..1}$k"
let n="$n-1"
done
echo $(eval "echo $k")
}
$ bitperms 4
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
$ for X in $(bitperms 2);do echo "$X";done
00
01
10
11
推荐阅读
- angular - 伊斯坦布尔突出显示 html 报告中的错误行
- dji-sdk - PanoramaMissionOperator 与 DJI Mavic Pro 和 Phantom 4 Pro 的兼容性
- flutter - IconButton的波纹效果出现在widget下方
- javascript - 我可以将 laravel 应用程序与 Gatsby.js 和 React 编写的静态网站集成吗?
- html - 如何在屏幕中间放置标签
- c - 试图用 C 写一个字母计数器
- angular - 运行业力启动时找不到入口点
- ruby-on-rails - 断开并取消订阅 Action Cable on Rails 6
- debugging - Visual Studio 2019 - 无法调试 Azure 函数 - (桌面 CLR (.NETFramework) 与托管 (CoreCLR) 调试器)
- node.js - 如何修复passport.js中的身份验证功能