2012-06-27 14 views
6

wgetツールを使用してウェブサイトのコンテンツをダウンロードしようとしています。いくつかのファイルタイプを拒否するには-Rオプションを使用しました。しかし、私がダウンロードしたくない他のファイルがあります。これらのファイルの名前は次のとおりであり、拡張子はありません。例えばwgetで正規表現を使用してファイルを拒否する方法は?

string-ID 

:私はこれらのファイル(その名前が指定した文字列で始まるファイル)をダウンロードしないようにwgetを伝えることができますどのように

newsbrief-02 

答えて

4

wget -Rキーで正規表現を指定することはできませんが、テンプレート(シェル内のファイルテンプレートなど)を指定することはできます。あなたはまた、?と記号のクラス[]を使用することができます

$ wget -R 'newsbrief-*' ... 

答えは次のようになります。

詳細については、info wgetを参照してください。 (明らかに)v1.14 wget以来

18

は、正規表現を受け入れ:--reject-regex--accept-regexlibpcreサポート付きでコンパイルされた場合、デフォルトで--regex-type posixで、pcreに設定することができます)。

--reject-regexwgetコールごとに1回しか使用できないようですのでご注意ください。それはあなたがいくつかの正規表現に選択したい場合は、単一の正規表現で|を使用する必要があり、次のとおりです。いくつかの正規表現を持つ例えば

wget --reject-regex 'expr1|expr2|…' http://example.com 
+3

感謝。 – GregHNZ

+0

reject-regexは '.'や' * 'のようなもので動作しますか?どのような正規表現ですか、拡張正規表現かPCRE正規表現ですか? – CMCDragonkai

+0

@CMCDragonkai質問の2番目の部分は、すでに私の答えで対処されています。 '.'と' * 'で動作します。 'wget -r --reject-regex"。* foobar。* "http:// example.com'は' http:// example.com/foobar/'を破棄します。 –

関連する問題