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

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

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

관련 정보