HTTP-Response-Header von wget analysieren

8

Ich versuche, eine Zeile aus dem Ergebnis von wget zu extrahieren, habe aber Probleme damit. Das ist mein wget-Aufruf:

%Vor%

Ausgabe:

%Vor%

wenn ich das tue:

%Vor%

Es gibt mir die Zeile, die die Zeichenfolge enthält, nicht zurück. Ich möchte nur überprüfen, ob die Website oder der Siteminder aktiv ist.

    
StephenNYC 19.11.2008, 15:15
quelle

5 Antworten

15

Die Ausgabe von wget, nach der Sie suchen, steht auf stderr. Sie müssen es umleiten:

%Vor%     
Piotr Lesnicki 19.11.2008, 15:20
quelle
8

wget druckt die Header auf stderr, nicht auf stdout. Sie können stderr wie folgt in stdout umleiten:

%Vor%

Der "2 & gt; & amp; 1" -Teil sagt, den Dateideskriptor 2 (stderr) in den Dateideskriptor 1 (stdout) umzuleiten ('& gt;').

    
Adam Rosenfield 19.11.2008 15:23
quelle
2

Eine etwas verbesserte Version der bereits bereitgestellten Lösung

  

wget -SO- -T 1 -t 1 Ссылка 2 & gt; & amp; 1 & gt; / dev / null | grep -c 302

2>&1 >/dev/null schneidet nicht benötigte Ausgaben ab. Auf diese Weise wird egrep nur wget's stderr parsen, was die Möglichkeit eliminiert, Strings zu fangen, die 302 von stdout enthalten (wobei html-Datei selbst + Download-Prozessbalken mit resultierender Byteanzahl e.t.c. ausgegeben wird):)

egrep -c zählt die Anzahl übereinstimmender Zeichenfolgen, anstatt sie einfach auszugeben. Genug, um zu wissen, wie viel Strings egrep erreicht hat.

    
DrBao 03.02.2011 16:38
quelle
2

wget --server-response Ссылка 2 & gt; & amp; 1 | awk '/ ^ HTTP / {Drucken $ 2}'

    
Th 0 mÄ s 20.05.2014 13:26
quelle
1

Nur um etwas zu erläutern. Der Schalter -S in der ursprünglichen Frage ist eine Abkürzung für --server-response .

Ich weiß auch, dass das OP wget angegeben hat, aber curl ist ähnlich und standardmäßig STDOUT.

%Vor%

oder

%Vor%

Der Schalter --silent wird nur für grep -ability benötigt: ( -s schaltet den Fortschritt% meter aus)

    
MarkHu 23.01.2012 23:27
quelle

Tags und Links