تحليل النص المتشعب رأس استجابة من مجلد مشترك
سؤال
وايم تحاول استخراج خط من نتيجة مجلد مشترك ولكن تواجه مشكلة مع ذلك. هذا هو دعوتي 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
إيقاف التقدم٪ متر)