여러 파일을 컬링하고 출력을 하나의 파일에 저장

여러 파일을 컬링하고 출력을 하나의 파일에 저장

을 사용하여 웹사이트의 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

관련 정보