从模式生成字母数字字符串

从模式生成字母数字字符串

我想从我的模式中生成主机名,例如:inc-[tnc][app|web][1-10]它应该输出如下:

inc-tapp1
inc-tapp2
.
.
inc-tapp10
inc-napp1
.
.
inc-capp10
inc-tweb1
.
.
inc-cweb10

这里 t,n,c 代表我们位于德克萨斯州、纽约和加利福尼亚州的数据中心。

答案1

只需使用 bash 扩展即可。

$ echo inc-{t,n,c}{app,web}{1..10}
inc-tapp1 inc-tapp2 inc-tapp3 inc-tapp4 inc-tapp5 inc-tapp6 inc-tapp7 inc-tapp8 inc-tapp9 inc-tapp10 inc-tweb1 inc-tweb2 inc-tweb3 inc-tweb4 inc-tweb5 inc-tweb6 inc-tweb7 inc-tweb8 inc-tweb9 inc-tweb10 inc-napp1 inc-napp2 inc-napp3 inc-napp4 inc-napp5 inc-napp6 inc-napp7 inc-napp8 inc-napp9 inc-napp10 inc-nweb1 inc-nweb2 inc-nweb3 inc-nweb4 inc-nweb5 inc-nweb6 inc-nweb7 inc-nweb8 inc-nweb9 inc-nweb10 inc-capp1 inc-capp2 inc-capp3 inc-capp4 inc-capp5 inc-capp6 inc-capp7 inc-capp8 inc-capp9 inc-capp10 inc-cweb1 inc-cweb2 inc-cweb3 inc-cweb4 inc-cweb5 inc-cweb6 inc-cweb7 inc-cweb8 inc-cweb9 inc-cweb10
$ 

或者,如果您想在每个之间换行,请通过 tr 进行管道传输。

$ echo inc-{t,n,c}{app,web}{1..10}|tr " " "\n"
inc-tapp1
inc-tapp2
inc-tapp3
[etc]

答案2

您可以使用外壳支撑扩展

bash$ echo a{d,c,b}e
ade ace abe

http://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html#Brace-Expansion

相关内容