우리 조직의 그래픽 저장소 웹 페이지에서 모든 그래픽 파일을 다운로드하고 싶습니다. 그들은 일러스트레이터입니다(.ai) 형식 및 Corel Draw(.cdr) 형식입니다.
이들은 직접 하이퍼링크로 연결됩니다(예 <a href="http://server/path-to-file.ai">...</a>
: .
답변1
wget
이를 직접 지원하는 기능이 포함되어 있습니다.
wget -r -A "*.ai,*.cdr" 'address-of-page-with-hyperlinks'
-r
재귀 모드를 활성화하여 지정된 URL 이외의 파일을 다운로드하고 -A
최종적으로 다운로드 및 유지되는 파일을 제한합니다.
답변2
이 페이지를 읽어보세요
curl
하이퍼링크로 필터링합니다
grep
. 이는 형식이 일관적이라는 사실을 활용합니다(예:<a href="..."
. 하나HTML/XML 파서진짜사용해야한다조금 더 복잡한 경우.Cut Hyperlink Address를 사용하고
grep -o
다시grep
필터링을 사용하여 필요한 확장 및 프로토콜을 대상으로 하는 링크만 추출합니다.이러한 결과 파일을 다운로드합니다
wget
(또는curl
출력이 지정된 경우 사용). 또한echo
콘솔의 URL도 제공합니다.
편의상 스크립트에서 필터링하는 순서는 위와 정확히 동일하지 않습니다.
불다:
#!/bin/bash
while read url; do
# Echo URL to terminal
echo "${url}"
# Download files
wget -q "${url}"
done < <(
# Get page
curl -s 'address-of-page-with-hyperlinks' | \
# Filter hyperlinks
grep -Po 'href="http://[^"]+\.(cdr|ai)"' | \
grep -Po 'http://[^"]+'
)