正規表現を使用してLinux上の特定のファイルにインターネットURLを含むすべての行を表示する方法

正規表現を使用してLinux上の特定のファイルにインターネットURLを含むすべての行を表示する方法

www.gutenberg.orgやwww.gutenberg.org/contactなどの特定のファイルにすべてのURL URLを表示しようとしています。http://www.gutenberg.org/5/5/2/0/55201/ 私は次のコマンドを使用します

cat filename | grep grep / ((www\.)?(\.[a-zA-Z]{2,3}\/?)[^\s\b\n|]*[^.,;:\?\!\@\^\$ -])

しかし、これによりエラーが発生しました。

答え1

以下は、次から始まるすべてのアドレスに適用する必要があります。http/https/www-

grep -Eo '(http|https|www)(.|://)[a-zA-Z0-9./?=_-]*' fileName

テストして問題が解決するかどうか教えてください。簡潔にするために正規表現については詳しく説明しません。

関連情報