سؤال

وايم تحاول استخراج خط من نتيجة مجلد مشترك ولكن تواجه مشكلة مع ذلك. هذا هو دعوتي WGET:

$ wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html

وإخراج:

--18:24:12--  http://xxx.xxxx.xxxx:15000/myhtml.html
           => `-'
Resolving xxx.xxxx.xxxx... xxx.xxxx.xxxx
Connecting to xxx.xxxx.xxxx|xxx.xxxx.xxxx|:15000... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 302 Found
  Date: Tue, 18 Nov 2008 23:24:12 GMT
  Server: IBM_HTTP_Server
  Expires: Thu, 01 Dec 1994 16:00:00 GMT
  Location: https://xxx.xxxx.xxxx/siteminderagent/...
  Content-Length: 508
  Keep-Alive: timeout=10, max=100
  Connection: Keep-Alive
  Content-Type: text/html; charset=iso-8859-1
Location: https://xxx.xxxx.xxxx//siteminderagent/...
--18:24:13--  https://xxx.xxxx.xxxx/siteminderagent/...
           => `-'
Resolving xxx.xxxx.xxxx... failed: Name or service not known.

وإذا كنت تفعل هذا:

$ wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html | egrep -i "302" <br/>

وهو لا يعود لي السطر الذي يحتوي على السلسلة. أريد فقط معرفة ما اذا كان الموقع أو Site Minder من متروك.

هل كانت مفيدة؟

المحلول

وإخراج مجلد مشترك كنت تبحث عن هو مكتوب على ستدير. يجب إعادة توجيه ذلك:

$ wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html 2>&1 | egrep -i "302" 

نصائح أخرى

وwget يطبع رؤوس لSTDERR، وليس لالمعياري. يمكنك إعادة توجيه ستدير إلى المعياري كما يلي:

wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html 2>&1 | egrep -i "302"

والجزء "2> & 1" يقول لإعادة توجيه ( '>') واصف ملف 2 (ستدير) إلى ملف واصف 1 (المعياري).

وهناك نسخة محسنة من الشيء حل قدمت بالفعل

<اقتباس فقرة>   

ومجلد مشترك -SO- -T 1 -t 1 http://myurl.com:15000/myhtml. أتش تي أم أل 2> & 1> / ديف / لاغية | البقرى -c 302

و2>&1 >/dev/null ستخفض من الانتاج لزوم لها. بهذه الطريقة سوف egrep تحليل فقط wget`s ستدير، ما يلغي إمكانية للقبض على السلاسل التي تحتوي 302 من المعياري (حيث ملف HTML نفسها أنتج + تحميل بروسس شريط مع ما يترتب بايت عد e.t.c.):)

وegrep -c تحصي عدد سلاسل مطابقة بدلا من مجرد إخراج لهم. يكفي أن تعرف كم سلاسل egrep مطابقة.

ومجلد مشترك --server الاستجابة http://www.amazon.de/xyz 2> & 1 | AWK '/ ^ HTTP / {طباعة $ 2}'

وفقط لفسر بعض الشيء. هو اختصار مفتاح -S في السؤال الأصلي لل--server-response.

وأيضا، وأنا أعلم أن OP محدد wget، ولكن curl يشبه والتخلف إلى STDOUT.

curl --head --silent $yourURL

أو

curl -I -s $yourURL

وهناك حاجة فقط التبديل --silent لgrep-القدرة: (-s إيقاف التقدم٪ متر)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top