11

wgetの結果から行を抽出しようとしていますが、問題があります。これは私のwget呼び出しです:

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

出力:

--18:24:12-- http://xxx.xxxx.xxxx:15000 / myhtml.html
           =>`-'
xxx.xxxx.xxxxを解決しています...xxx.xxxx.xxxx
xxx.xxxx.xxxx | xxx.xxxx.xxxx |:15000に接続しています...接続されています。
HTTPリクエストが送信され、応答を待っています...
  HTTP /1.1302が見つかりました
  日付:2008年11月18日火曜日23:24:12 GMT
  サーバー:IBM_HTTP_Server
  有効期限:1994年12月1日木曜日16:00:00 GMT
  場所:https://xxx.xxxx.xxxx/siteminderagent/..。
  コンテンツ-長さ:508
  キープアライブ:timeout = 10、max = 100
  接続:Keep-Alive
  コンテンツタイプ:text / html; charset = iso-8859-1
場所:https://xxx.xxxx.xxxx//siteminderagent/..。
--18:24:13-- https://xxx.xxxx.xxxx/siteminderagent/..。
           =>`-'
xxx.xxxx.xxxx ...の解決に失敗しました:名前またはサービスが不明です。

私がこれを行う場合:

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

文字列を含む行は返されません。サイトまたはサイトマインダーが稼働しているかどうかを確認したいだけです。

4

5 に答える 5

19

探しているwgetの出力はstderrに書き込まれます。リダイレクトする必要があります:

$ wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html 2>&1 | egrep -i "302" 
于 2008-11-19T15:20:43.380 に答える
9

wgetヘッダーをstdoutではなくstderrに出力します。次のように、stderrをstdoutにリダイレクトできます。

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

「2>&1」の部分は、ファイル記述子2(stderr)をファイル記述子1(stdout)にリダイレクト('>')することを示しています。

于 2008-11-19T15:23:13.903 に答える
2

すでに提供されているソリューションの少し強化されたバージョン

wget -SO- -T 1 -t 1 http://myurl.com:15000/myhtml.html 2>&1 >/dev/null | grep -c 302

2>&1 >/dev/null不要な出力を削除します。このように、egrep は wget の stderr のみを解析します。これにより、stdout から 302 を含む文字列をキャッチする可能性がなくなります (html ファイル自体が出力された場所 + 結果のバイト数を含むダウンロード プロセス バーなど):)

egrep -c単純に出力するのではなく、一致した文字列の数をカウントします。egrep が一致した文字列の数を知るには十分です。

于 2011-02-03T16:38:09.407 に答える
2

wget --server-response http://www.amazon.de/xyz 2>&1 | awk '/^ HTTP/{print $2}'

于 2014-05-20T13:26:07.470 に答える
1

少しだけ説明します。元の質問の-Sスイッチは、の省略形です--server-response

また、OPが指定されていることは知っていますwgetが、curl類似しており、デフォルトは STDOUT です。

curl --head --silent $yourURL

また

curl -I -s $yourURL

この--silentスイッチはgrep-ability: (-s進行状況 % メーターをオフにします) にのみ必要です。

于 2012-01-23T23:27:48.600 に答える