2012-02-15 38 views
2

我使用cURL將文件下載到本地文件夾。我使用看起來像這樣的命令:如何讓一部分URL在cURL中同時增加?

curl -O http://example.com/example/file[001-030]_file_[1-30]_eng.ext 

我想要的號碼在同一時間(「file001_file_1_eng.ext」)增加,使他們匹配。相反,它像嵌套循環一樣工作,並且命令將一堆空文件與現有文件一起寫入文件夾。所以,我得到:

file001_file_1_eng.ext 
file001_file_2_eng.ext <--- file doesn't exist 
file001_file_3_eng.ext <--- file doesn't exist 

等等

所以,我不知道如何讓他們以正確的方式遞增。

我希望得到這樣的輸出:

example.com/example/file008_file_1_eng.text 
example.com/example/file009_file_2_eng.text 
example.com/example/file010_file_3_eng.text 
example.com/example/file011_file_4_eng.text 
example.com/example/file012_file_5_eng.text 
example.com/example/file013_file_6_eng.text 
example.com/example/file014_file_7_eng.text 
example.com/example/file015_file_8_eng.text 
example.com/example/file016_file_9_eng.text ... and so on. 
+0

如何在循環中創建數字? – 2012-02-15 07:44:31

回答

4

我想你可能想使用for循環:

#!/bin/bash 
for i in {0..30}; do 
    printf -v url "http://example.com/example/file%03d_file_%d_eng.text" $i $i 
    curl -O $url 
done 

在這種循環中,URL是的,你應該得到是以下幾種:

http://example.com/example/file000_file_0_eng.text 
http://example.com/example/file001_file_1_eng.text 
http://example.com/example/file002_file_2_eng.text 
http://example.com/example/file003_file_3_eng.text 
http://example.com/example/file004_file_4_eng.text 
http://example.com/example/file005_file_5_eng.text 
http://example.com/example/file006_file_6_eng.text 
http://example.com/example/file007_file_7_eng.text 
http://example.com/example/file008_file_8_eng.text 
http://example.com/example/file009_file_9_eng.text 
http://example.com/example/file010_file_10_eng.text 
http://example.com/example/file011_file_11_eng.text 
http://example.com/example/file012_file_12_eng.text 
http://example.com/example/file013_file_13_eng.text 
http://example.com/example/file014_file_14_eng.text 
http://example.com/example/file015_file_15_eng.text 
http://example.com/example/file016_file_16_eng.text 
http://example.com/example/file017_file_17_eng.text 
http://example.com/example/file018_file_18_eng.text 
http://example.com/example/file019_file_19_eng.text 
http://example.com/example/file020_file_20_eng.text 
http://example.com/example/file021_file_21_eng.text 
http://example.com/example/file022_file_22_eng.text 
http://example.com/example/file023_file_23_eng.text 
http://example.com/example/file024_file_24_eng.text 
http://example.com/example/file025_file_25_eng.text 
http://example.com/example/file026_file_26_eng.text 
http://example.com/example/file027_file_27_eng.text 
http://example.com/example/file028_file_28_eng.text 
http://example.com/example/file029_file_29_eng.text 
http://example.com/example/file030_file_30_eng.text 
+0

感謝:@jcollado,我仍然遇到網址中的數字不匹配的問題。例如:http://example.com/example/file035_file_1_eng.text。我試圖創建新的變量來解決這個問題,但似乎無法讓它正常工作。也許我走錯了路。 – Jordan 2012-02-15 21:25:07

+0

@honestinjun在答案中的代碼我沒有看到這樣的行爲。請詳細說明你在運行什麼來獲取錯誤的文件名? – jcollado 2012-02-15 21:46:18

+0

對不起,我的回覆不明確。我從中獲取信息的URL如下所示:example.com/example/file035_file_1_eng.txt。但在你的答案中,使用$ i將給我:example.com/example/file031_file_1_eng.text。有沒有辦法使用兩個不同的變量並增加它們兩個? – Jordan 2012-02-17 01:36:35