2017-10-16 63 views
1

我想知道是否有一種簡單的方法來產生類似於捲曲花括號的雙重序列。帶括號的雙序列?

我想產生一個雙序列像這樣的:

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 

在此先感謝

+1

什麼是你的目標是什麼? echo目錄{1..25..2}/somethingelse/file {2..50..4} | wc -w'回答:'169'(*'13 x 13 = 169' *對我來說沒問題)? –

+0

需要澄清,如果你需要'directory1/somethingelse/file2.png',你不需要'directory1/somethingelse/file6.png'來自同一個文件夾? – Inian

+0

我需要directory1/somethingelse/file2.png directory3/somethingelse/file6.png ... directory25/somethingelse/file50.png目錄和文件的單個序列是已知的,例如{1..25..2 }和{2..50..4} – user2567475

回答

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 
+1

感謝您的回答。你的解決方案几乎是完美的,我只需要在同一行中打印所有內容,所以我只是對你的解決方案做了一些修改,改變回聲線,如下所示:echo -n「$ {dirs [i]}/somethingelse/$ {文件[i]}。png「在...之間增加一個空格」$ – user2567475

+1

當然我在for循環之前添加了一行包含「echo -n eog」的行 – user2567475

+1

使用此鏈接的結果https://stackoverflow.com/questions/5017578/bash-a-script-as-a-script的輸出完成了所有的故事。 – user2567475

1

我想這是你可以使用bash實現。

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

謝謝。一般來說,這個順序並不是很規則,但我會逐個找出問題所在。 – user2567475