如何使用正则表达式显示Linux中任何给定文件中具有互联网网址的所有行

如何使用正则表达式显示Linux中任何给定文件中具有互联网网址的所有行

我正在尝试显示给定文件中的所有网址网址,例如 www.gutenberg.org 或 www.gutenberg.org/contact 或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

测试它并让我们知道它是否解决了您的问题。为了简短起见,我不会详细介绍正则表达式。

相关内容