带括号的双重序列?

时间:2017-10-16 08:57:03

标签: bash brackets

我想知道是否有一种简单的方法可以产生类似于卷曲括号的双重序列。

我想生成一个像这样的双重序列:

eog directory1/somethingelse/file2.png  directory3/somethingelse/file6.png ...  directory25/somethingelse/file50.png

目录和文件的序列是常规的(我的意思是,例如,目录为{1..25..2},文件为{2..50..4})。

我想知道是否有一种简单的方法来生成序列而不是使用具有所有值的向量。我的意思是

eog directory[someOpenedBracket]1..25..2[someClosedBracket]/somethingelse/file[someOpenedBracket]2..50..4[someClosedBracket].png

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为这是你用Bash所能达到的全部目标。

eog $(i=0; while ((++i<=25)); do echo dir$i/file$((i++*2)); done)

答案 1 :(得分:1)

您可以填充2个单独的数组并循环遍历它们:

dirs=(directory{1..25..2})
files=(file{2..50..4})

for ((i=0; i<${#dirs[@]}; i++)); do
    printf '%s ' "${dirs[i]}/somethingelse/${files[i]}.png"
done
echo

输出(在输出的一行中显示)

directory1/somethingelse/file2.png
directory3/somethingelse/file6.png
directory5/somethingelse/file10.png
directory7/somethingelse/file14.png
directory9/somethingelse/file18.png
directory11/somethingelse/file22.png
directory13/somethingelse/file26.png
directory15/somethingelse/file30.png
directory17/somethingelse/file34.png
directory19/somethingelse/file38.png
directory21/somethingelse/file42.png
directory23/somethingelse/file46.png
directory25/somethingelse/file50.png