
どなたかご教授下さい。linux初心者です。
気象庁の地震速報の詳細ページを日別に自動で入手したいのです。
たとえば今日ならば、ひとつのファイルは
http://www.jma.go.jp/jp/quake/20110612112208391- …
...112208391-121117が発生時刻と発表時刻となるようなので
規則性がありません。そこで:
$ wget http://www.jma.go.jp/jp/quake/20110612\d{9}-\d{6}.html
とやったのですが;
--2011-06-12 12:58:36--
http://www.jma.go.jp/jp/quake/20110612d%7B9%7D-d …
Resolving www.jma.go.jp (www.jma.go.jp)... 124.40.39.100
Connecting to www.jma.go.jp (www.jma.go.jp)|124.40.39.100|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-06-12 12:58:36 ERROR 404: Not Found.
となってしまいます。
これはwgetの正規表現がおかしいのでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
「正規表現の理 解不足だったようです。
」自己解決がとんでもない方向にむかいそうなので軌道修正するよ。
まず、理解不足なのは「正規表現」じゃなくて、Linux のコマンドなら正規表現がつかえるだろうというおもいこみかな?
しらなかったかもしれないけど、wget は正規表現つかえないよ。正規表現がつかえるコマンドなんてもともとそんなに多くないし。
正規表現がつかえるコマンドかどうかは、
$ man コマンド名
で表示されるコマンドリファレンスのなかに正規表現のことがかいてあるからわかるとおもうよ。
あと、正規表現っていっても方言のようなものがあって、コマンドによってつかえる表現が少しずつちがうから注意してね!
正規表現を覚えるなら、とりあえず grep からでいいかな?
http://linuxjm.sourceforge.jp/html/GNU_grep/man1 …
質問の解決策は、[ANo.4] さんが回答してくれてるからとくにいらないよね。
よい Linux ライフを!
ありがとうございました。正規表現をdosのワイルドカードと誤解してしまい、ファイル名が不明でも規則に従ってwget出来る、と誤解していました。
unixは勉強し始めたばかりで、皆さんに迷惑をかけてしまいました。あれから自力でスクリプトを書いて(下記)みたのですが、やはり[ANo.4]が綺麗ですね。大変勉強になりました。
#(1)気象庁ファイルの抜き出し
wget http://www.jma.go.jp/jp/quake/quake_local_index. …
#(2)特定月日の行だけ抜く
awk '/20110612/ {print $0}' quake_local_index.html > quake.log
#(3)html部分だけ抜く
$ awk '{print substr($0,25,30)}' quake.log > add_quake.log
#(4)シェルスクリプト作成
cat add_quake.log | awk '{print "wget http://www.jma.go.jp/jp/quake"$1}' > jikko.sh
#(5)実行
sh jikko.sh
No.4
- 回答日時:
地震の一覧ページを取得して、欲しい日付のファイルをダウンロードするスクリプトを書けばよいでしょう。
ということで書いてみました。
#!/bin/bash
# 前日の地震の情報を取得するスクリプト
date=`date +%Y%m%d --date=yesterday`
wget http://www.jma.go.jp/jp/quake/quake_local_index. … -O html.txt
for html in `grep "./$date" html.txt | cut -b 26-54`
do
wget -p --cut-dirs=2 http://www.jma.go.jp/jp/quake/$html
done
ありがとうございました。あれから自分でも考えて見よう見まねで作ってみたのですが、さすが見事なスクリプトです。大変勉強になりました。ご指導感謝します。
No.3
- 回答日時:
httpでの通信では、一般的には、「有効なURLの一覧表」なんてものを受けとれるものではありません。
正規表現は、対象と比較してマッチするかどうかを調べるのに使うものです。
「比較対象」である「URL一覧」が無いのに、どうやって比較するのでしょう?
通常は、RSSとか、一覧表示するページとかから、正規表現にマッチするURLを抽出してそれをwgetで処理します。
No.2
- 回答日時:
コマンドラインに書くURLに正規表現が使えるwgetがあるんでしょうか?
http://www.gnu.org/software/wget/manual/wget.html
\d{9}-\d{6} の『\d』ってこれ一般的な正規表現なのでしょうか?
http://www.kt.rim.or.jp/~kbk/regex/regex.html
# 回答でなく質問ですみません。
# お使いのwgetが特殊(?)な実装を施したものであるのなら・・・以下略
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Core 2 Duo の古いパソコンに最...
-
linuxのインストール
-
ubuntu(linux)のシャットダウン...
-
インストールできないですどう...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
「/var/log」内のログの削除の...
-
Linux のシェルスクリプトの強...
-
ubuntu が起動しない。
-
LinuxでWine使うとどのくらいWi...
-
bashでシングルクォート内の変...
-
ssl_error_logのエラー内容(AH...
-
ubuntuのシャットダウンが進ま...
-
ubuntuで デイスク/deb/loopと...
-
Ububtuでファイル共有できない...
-
Ubuntu でinvalid filenameとな...
-
Rasberry pi のオンボードNICの...
-
linuxサーバーのキャッシュをク...
-
Linuxでブートディスクの交換後...
-
他のLinuxでも動くa.outの作り方
-
ssl_request_logの必要性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
【ターミナル】MacBookにディー...
-
Illustratorのデータをまとめて...
-
DOSコマンドでのワイルドカ...
-
Windows10のRegSys32に登録され...
-
telnet,rlogin,rshの違いってな...
-
IBM漢字コードのSJIS変...
-
rcpコマンドについて、教えて!
-
コマンドでのコンピュータ名変...
-
DOSのAUTOEXEC.BATの書き方、等
-
cactiでグラフが表示されない
-
wgetの正規表現について
-
FTP接続中のコマンド実行結果を...
-
AIX ksh利用 grep 検索で マ...
-
linuxのreadコマンドについて
-
今年の経過日数 linixコマンド...
-
属性変更できないです。
-
Solaris rmコマンドをシェルで...
-
Linux9でのCUIの日本語表示につ...
-
lsコマンドで表示するファイル...
おすすめ情報