2016-09-23 2 views
-1

https://github.com/sschwartzman/newrelic-unix-plugin에서 이진 파일을 다운로드하고 싶습니다. 하지만 URL은 다른 주소로 리디렉션되므로 awk를 사용하여 구문 분석합니다. 예 :awk를 사용하여 URL을 구문 분석하고 컬링을 사용하여 다운로드하려면 어떻게해야합니까?

curl -I https://github.com/sschwartzman/newrelic-unix-plugin/blob/master/dist/newrelic_unix_plugin.tar.gz\?raw\=true | awk '/Location:/ {print $2}' 

결과가 예상대로입니다.

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- 0:00:01 --:--:--  0 
https://github.com/sschwartzman/newrelic-unix-plugin/raw/master/dist/newrelic_unix_plugin.tar.gz 

실제 주소가 구문 분석됩니다. 그래서 저는 단지 컬을 사용하여 그것을 다운로드하고 싶습니다. 그러나 나는 항상 실패했다. osx osx EI Capitan (저는 wget이 없습니다).

curl -I https://github.com/sschwartzman/newrelic-unix-plugin/blob/master/dist/newrelic_unix_plugin.tar.gz\?raw\=true | awk '/Location:/ {curl -O $2}' 

모든 의견을 보내 주시면 감사하겠습니다.

p.s. curl로 바이너리 direclty를 다운로드하려고했지만 여전히 실패했습니다. 다운로드 한 파일의 크기와 내용이 잘못되었습니다.

curl -O https://github.com/sschwartzman/newrelic-unix-plugin/raw/master/dist/newrelic_unix_plugin.tar.gz 
+0

마지막 예 2, 당신은 당신의 awk 스크립트에 단어 "컬 -O"를 입력하고 일을 기대하고 권장되지 수 없습니다 "내부"에서 awk 프로그램을 실행할 수 있습니다. 마지막 예제가 성공 가능성이 가장 높지만 curl -OutFile.tar.gz https : // ....'를 시도 했습니까? 행운을 빕니다. – shellter

답변

5

curl는 재 처리 할 수 ​​-L 스위치가 있습니다.

그래서,이 작동합니다 : 당신에

curl -L https://github.com/sschwartzman/newrelic-unix-plugin/blob/master/dist/newrelic_unix_plugin.tar.gz\?raw\=true -o newrelic_unix_plugin.tar.gz 
+0

그래, 명령에 따라 gz 파일을 다운로드 할 수 있지만 "curl : (6) Could not resolve host : newrelic_unix_plugin.tar.gz"오류가 발생하고 파일 이름은 "newrelic_unix_plugin.tar.gz? raw = 참된". tar.gz 파일로 이름을 바꾸고 추출해야합니다. 이름 문제를 해결하는 방법? 고마워. – Orionpax

+1

'-O'대신 '-o'를 사용해야합니다. – Orionpax

+0

@Orionpax 예, 맞습니다. 통고 해줘서 고마워. – pavnik

관련 문제