3

HTML ファイルからリンクを取得するために gawk の match() 関数を使用しています。正規表現は次のようになります。

match($0, /(<a href=\")([^\"]+)/, arr)

最後に「/g」オプションを使用して、行ごとに複数の一致を取得できないようですが?

4

2 に答える 2

5

それは正しいです。AWK 正規表現にはフラグがありません。また、 2 番目以降の一致
を探すための組み込みサポートはありません。と関数 だけがそれを持っています。 私はこのようなことを試してみます:match
gsubgensub

gensub(/.*<a href=\"([^\"]+)/, "\1%", "g")
last = split($0, "%", arr)
delete arr[last]

where%は、入力に見つからないことを保証できる文字列です。

于 2011-05-05T19:25:52.007 に答える
1

テキスト モード ブラウザーの lynx は、URL を収集するための優れたツールである可能性があります。フラグは、フォーマットされ-dumpた出力を標準出力に書き込みます。最後に、そのページのすべての表示および非表示リンクの番号付きリストが表示されます。(またはファイル。引数として URL またはファイル名を受け入れます。)

$ lynx -dump http://www.stackoverflow.com 

[snip]
References

   Visible links
   1. http://stackoverflow.com/opensearch.xml
   2. http://stackoverflow.com/feeds
   3. http://stackexchange.com/
   4. http://stackoverflow.com/users/login
   5. http://careers.stackoverflow.com/
   6. http://chat.stackoverflow.com/
[snip]
 676. http://creativecommons.org/licenses/by-sa/3.0/
 677. http://blog.stackoverflow.com/2009/06/attribution-required/

   Hidden links:
 678. http://www.peer1.com/stackoverflow
 679. http://creativecommons.org/licenses/by-sa/3.0/
于 2011-05-07T20:10:50.023 に答える