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
追加して他の数値タイプをキャプチャすることもできます。