他のディレクトリのループリダイレクト出力

他のディレクトリのループリダイレクト出力

別のフォルダにダウンロードするファイル名を含むファイル(list.url)があります。構造は次のとおりです。

コンテンツlist.url:
フォルダAの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; 

これにより、各フォルダのファイルがダウンロードされます。

  • サブシェルを作成するには括弧が必要です。
  • 私はあなたが複数の(list.url)ファイルを持っていると仮定します。

おすすめ記事