パターンから英数字文字列を生成する

パターンから英数字文字列を生成する

たとえば、私のスキーマでホスト名を生成したいとします。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

関連情報