中かっこの拡張と順序付けされていないリスト{txtfile,index}{1..3}.{txt,html} `{txtfile,index}` が `{txt,html}` に対応するようにしたい

中かっこの拡張と順序付けされていないリスト{txtfile,index}{1..3}.{txt,html} `{txtfile,index}` が `{txt,html}` に対応するようにしたい

{txtfile,index}{1..3}.{txt,html}

{txtfile,index}私は以下を使用して生産したいと思います{txt,html}

txtfile1.txt
txtfile2.txt
txtfile3.txt
index1.html
index2.html
index3.html


しかし、このコードは私が望んでいないすべての可能な組み合わせtxtfile1.htmlを生成するので、index1.txt
以下のコードは機能しません。
{txtfile,index}{1..3}.{txt,html}

私は対応するリスト拡張が良いと思いました。 (それらのユースケースはほぼ常に中括弧拡張と組み合わせられています。)構文
は次のとおりです{txtfile:index}{1..3}.{txt:html}
:

これはとても長いforループを使用したソリューションとサムline..
注: このソリューションは、手動でファイルをすばやく生成するためには使用できません。

fileNames=(txtfile index)
fileExtensions=(txt html)
for i in ${!fileNames[@]}; do echo ${fileNames[$i]}{1..3}.${fileExtensions[$i]}; done

1行をコピーして貼り付けます。fileNames=(txtfile index); fileExtensions=(txt html); for i in ${!fileNames[@]}; do echo ${fileNames[$i]}{1..3}.${fileExtensions[$i]}; done

これが悪い場合でも2を行うので、echo2行になりますtouch..

txtfile1.txt txtfile2.txt txtfile3.txt
index1.html index2.html index3.html

答え1

あなたはこれを過度にエンジニアリングしています。

txtfile{1..3}.txt index{1..3}.html

それはあなたが必要とするすべてです。

答え2

リスト

txtfile1.txt
txtfile2.txt
txtfile3.txt
index1.html
index2.html
index3.html

以下を使用して作成できます。二つキャリブレータ拡張:

txtfile{1..3}.txt
index{1..3}.html

例:

$ printf '%s\n' txtfile{1..3}.txt index{1..3}.html
txtfile1.txt
txtfile2.txt
txtfile3.txt
index1.html
index2.html
index3.html

単一の中括弧拡張で作成できます。

{txtfile{1..3}.txt,index{1..3}.html}

しかし、あなたはそれから何の利益も得られません。

関連情報