grepを使用してスクリプトを挿入してHTMLファイルからWebサイトのURLを取得する方法

grepを使用してスクリプトを挿入してHTMLファイルからWebサイトのURLを取得する方法

HTMLファイルからURLを抽出するためにgrepとcutを使用しようとしています。リンクは次のとおりです。

<a href="http://examplewebsite.com/">

他のサイトにもありますが、あらかじめ.netカット.govオフポイントを設定できると思いました>。だから私はgrepとcutを使ってhttp以前と.com以降のすべてを何とかブロックできることを知っていますが、しばらくこの問題に閉じ込められていました。

ベストアンサー1

ツールが制限されているかどうかはわかりません。

しかし、上記のように、正規表現は最善の方法ではないかもしれませんが、以下は私がまとめた例です。

cat urls.html | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | sort -u
  • grep -E: egrep と同じ
  • grep -o:grepさ​​れた内容のみ出力
  • (http|https):は/または
  • a-z: すべて小文字
  • A-Z: すべて大文字
  • .: はい
  • /:スラッシュです
  • ?:はい?
  • =:等号です
  • _:下線です
  • %:パーセント記号です
  • ::はコロンです
  • -:ダッシュです
  • *: 繰り返し [...] グループ
  • sort -u:すべての重複項目をソートして削除します。

出力:

bob@bob-NE722:~s$  wget -qO- https://stackoverflow.com/ | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | sort -u
https://stackauth.com
https://meta.stackoverflow.com
https://cdn.sstatic.net/Img/svg-icons
https://stackoverflow.com
https://www.stackoverflowbusiness.com/talent
https://www.stackoverflowbusiness.com/advertising
https://stackoverflow.com/users/login?ssrc=head
https://stackoverflow.com/users/signup?ssrc=head
https://stackoverflow.com
https://stackoverflow.com/help
https://chat.stackoverflow.com
https://meta.stackoverflow.com
...

\d追加して他の数値タイプをキャプチャすることもできます。

おすすめ記事