大容量ファイルからURLを抽出する

大容量ファイルからURLを抽出する

ここでは多くの答えを見ましたが、(主に)HTMLファイルについてです。私の場合、HTMLファイルがなく、抽出したいランダムなデータとURLを含む2GBのファイルしかありませんが、URLには出力に表示したくないランダムなデータ/テキストが混在しています。

例は次のとおりです。

https://example.com/";}i:41067;a:10:{s:3

ベストアンサー1

~によるとhttps://stackoverflow.com/a/7109208/1745001URLの有効な文字は次のとおりです。

AZ, az, 0-9, -, ., _, ~, :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,,;, %と=

したがって、これが真であると仮定すると、次のことを試すことができます。

grep -o -E "https?://[][[:alnum:]._~:/?#@!$&'()*+,;%=-]+" file

これらの文字の一部は、特定のコンテキストにのみ存在できるため、まだ100%正確ではないかもしれませんが、おそらく単純なgrep / regexpを使用して実行するのが最善です。

grepがこれをサポートしている場合は、いくつかの追加の制約のために\<tの前に単語の境界を追加してください(例:GNU grepなど)http

おすすめ記事