다른 URL에서 여러 XML 파일을 다운로드하는 방법

다른 URL에서 여러 XML 파일을 다운로드하는 방법

@slhck는 이와 유사한 질문에 대한 유용한 답변을 제공했습니다.

wget 및 처리 매개변수를 사용하여 여러 파일 다운로드

이 코드는 텍스트 파일에서 URL을 읽기 위해 제공되었습니다.파일 목록, 그런 다음 루프를 실행하여 각각을 다운로드합니다.

    #!/usr/bin/env bash 
    while read line 
      do   
        wget -c --load-cookies cookies.txt $line -O ${line##*/} 
    done < filelist

 

저는 쉘 스크립트에 익숙하지 않기 때문에 다음 방법으로 여러 XML 파일을 다운로드할 수 있는지 궁금합니다.

  • 간단한 쉼표로 구분된 텍스트 파일 만들기파일 목록
  • 다음에서 읽어보세요:

파일 목록

renamedfile.xml, url-01.php
renamedFileDifferent.xml, url-02.php
특정FileRename.xml, "url-03"
newFilename.xml, "url-04"

  • 각 줄을 읽어보세요
  • 줄을 새 파일, 원격 파일로 분할
  • 그리고 다음을 실행하세요:  

    wget -O newfile remoteFile >/dev/null 2>&1 
    

 

이것을 쉘 스크립트로 작성할 수 있습니까? 예를 들어주실 수 있나요?

답변1

쉼표 앞의 텍스트를 얻으려면 ${line/,*}.

(이것이 실제로 수행하는 작업은 ",*" 또는쉼표 이후의 모든 텍스트~와 함께빈 문자열- 쉼표 앞의 문자열 부분만 남겨두기)

쉼표 뒤의 텍스트를 가져오려면 ${line/*,}.

따라서 전체 명령은 다음과 같습니다.

while read line
  do
    wget -O ${line/,*} ${line/*,} >/dev/null 2>&1 
done < filelist

또는 한 줄에:

while read line; do echo wget -O ${line/,*} ${line/*,} >/dev/null 2>&1; done < filelist

Windows에서(wget을 설치했다고 가정하고,http://gnuwin32.sourceforge.net/packages/wget.htm, 경로를 올바르게 설정) 다음과 같습니다.

for /f "delims=, tokens=1*" %a in (filelist) do wget -O %a %b

관련 정보