curl
웹사이트의 HTML을 가져오는 데 사용하고 있습니다 . 처음 20줄만 가져와서 외부 파일에 저장하고 싶습니다. 약 10개의 URL을 가져와야 하며 모든 URL을 동일한 파일에 저장하고 싶습니다. 결과 위에 각 파일의 URL을 표시하는 것이 좋습니다. 내가 생각해 낸 것은 다음과 같습니다.
curl http://example.com/url1 | head -20 && curl http://example.com/url2 | head -20 > exportfile
그러나 이로 인해 두 가지 문제가 발생합니다.
- 이것은 최신 페이지만 저장합니다. (그리고 모든 명령문 뒤에 >exportfile을 넣으면 파일을 덮어씁니다.
- 실제 명령을 파일에 저장하지 않습니다.
내가 의도한 대로 이 작업을 수행할 수 있는 방법이 있나요?
답변1
모든 URL을 파일(예 urls.txt
: 한 줄에 하나씩)에 저장한 다음 스크립트에서 반복할 수 있습니다.
#! /bin/bash
# optional, clean up before starting
rm exportfile
while read url ; do
echo "URL: $url" >> exportfile
curl "$url" | head -20 >> exportfile
done < urls.txt
중요한 것 중 하나는 >>
추가하는 데 사용하는 것입니다. >
덮어씁니다.
답변2
이것을 시도해 보세요(bash):
{ curl http://example.com/url1 | head -20 \
&& curl http://example.com/url2 | head -20; } > exportfile