2016-09-23 12 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 

実際のアドレスが解析されます。だから私はそれをダウンロードするためにカールを使用したい。私はいつも失敗しました。 私のosは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. バイナリdirecltyをcurlでダウンロードしようとしましたが、それでも失敗しました。ダウンロードしたファイルのサイズと内容が正しくありません。

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

最後の例に第二に、あなたは自分のawkスクリプト中の単語「カール-O」と入力し、それが動作することを期待して、そのお勧めできませんすることはできませんawkの中からプログラムを実行することができます(ただしできます)。最後の例は成功する可能性が高いと思われますが、curl -OoutFile.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

関連する問題