을 사용하여 웹사이트의 HTML을 스크랩하고 있습니다 curl
. 처음 20개 행을 가져와서 외부 파일에 저장하고 싶습니다. 약 10개의 URL을 가져와야 하며 이를 모두 동일한 파일에 저장하고 싶습니다. 결과 위에 각 파일의 URL을 표시하는 것이 좋습니다. 내가 생각해 낸 것은 다음과 같습니다.
curl http://example.com/url1 | head -20 && curl http://example.com/url2 | head -20 > exportfile
그러나 이로 인해 두 가지 문제가 발생합니다.
- 이것은 최신 페이지만 저장합니다(각 명령문 뒤에 >export file을 넣으면 파일을 덮어씁니다).
- 실제 명령을 파일에 저장하지 않습니다.
내가 원하는 대로 이 작업을 수행할 수 있는 방법이 있나요?
답변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