我有一个文件(list.url),其中包含要在不同文件夹中下载的文件的名称。结构是这样的:
内容list.url:
folderA中的list.url内容:
https://www.encodeproject.org/files/ENCFF002CEL/@@download/ENCFF002CEL.bed.gz
https://www.encodeproject.org/files/ENCFF002DBD/@@download/ENCFF002DBD.bed.gz
https://www.encodeproject.org/files/ENCFF002DDJ/@@download/ENCFF002DDJ.bed.gz
https://www.encodeproject.org/files/ENCFF738TKN/@@download/ENCFF738TKN.bed.gz文件夹B中的list.url:
https://www.encodeproject.org/files/ENCFF558JBX/@@download/ENCFF558JBX.bed.gz
https://www.encodeproject.org/files/ENCFF004WYV/@@download/ENCFF004WYV.bed.gz
Input
文件夹A/list.url
文件夹B/list.url
Output
文件夹A/
https://www.encodeproject.org/files/ENCFF002CEL/@@download/ENCFF002CEL.bed.gz https://www.encodeproject.org/files/ENCFF002DBD/@@download/ENCFF002DBD.bed.gz https://www.encodeproject.org/files/ENCFF002DDJ/@@download/ENCFF002DDJ.bed.gz https://www.encodeproject.org/files/ENCFF738TKN/@@download/ENCFF738TKN.bed.gz 文件夹B/ https://www.encodeproject.org/files/ENCFF558JBX/@@download/ENCFF558JBX.bed.gz
https://www.encodeproject.org/files/ENCFF004WYV/@@download/ENCFF004WYV.bed.gz
我正在尝试像这样的嵌套循环:
a="folderA folderB"
for i in $a;
do
for j in list.url;
do
wget -i $i/$j;
done;
done
但问题是这些文件没有下载到将 list.url 作为输入的同一目录中。任何想法?
答案1
你必须改变目录。
代替
for j in list.url;
do
wget -i $i/$j;
done;
经过
for j in list.url;
do
(cd $i ; wget -i $j )
done;
这将下载每个文件夹中的文件。
- 创建子 shell 需要括号。
- 我假设您有多个 (list.url) 文件。