{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を行うので、echo
2行になります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}
しかし、あなたはそれから何の利益も得られません。