@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