다른 디렉터리의 루프 리디렉션 출력

다른 디렉터리의 루프 리디렉션 출력

다른 폴더에 다운로드할 파일 이름이 포함된 파일(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) 파일을 가지고 있다고 가정합니다.

관련 정보