使用grep过滤去除http/https协议及路径仅提取纯域名
文本过滤纯域名实现方案
需求说明
- 核心功能:从文本中提取纯域名,自动移除http/https等协议前缀,以及域名后的路径、参数等后缀
- 示例输入命令:
echo "Hi it's my web site (https://1stsubdomain.2ndsubdomain.example.com/welcome/)" | 对应处理命令 - 预期输出结果:
Hi it's my web site (1stsubdomain.2ndsubdomain.example.com) - 域名规则:支持匹配0-3级子域名
- 合法域名后缀列表:
.com|.net|.org|.ru|.xyz|.co|.tr|.uk|.vn|.intedu|.mil|.lnc|.is|.dev|.travel|.info|.biz|.email|.build|.agency|.zone|.bid|.condos|.dating|.events|.maiso|.partners|.properties|.productions|.social|.reviews|.techgov|.au
可直接运行的实现命令
使用sed正则替换即可实现需求,命令如下:
echo "Hi it's my web site (https://1stsubdomain.2ndsubdomain.example.com/welcome/)" | sed -E 's/https?:\/\/(([a-zA-Z0-9-]+\.){0,3}[a-zA-Z0-9-]+\.(com|net|org|ru|xyz|co|tr|uk|vn|intedu|mil|lnc|is|dev|travel|info|biz|email|build|agency|zone|bid|condos|dating|events|maiso|partners|properties|productions|social|reviews|techgov|au))[^ )]*/\1/g'
正则逻辑说明
- 首先匹配
http://或https://协议头,这部分直接丢弃 - 捕获组1匹配符合规则的域名:0-3段
字母/数字/横杠加.的子域名 + 主域名 + 合法后缀,这部分会保留 - 匹配域名后所有非空格、非右括号的字符(即路径、参数等内容),这部分直接丢弃
- 最终将匹配到的整段内容替换为捕获到的纯域名,其余原文本内容完全保留
内容的提问来源于stack exchange,提问作者Ugroon
相关产品推荐
相关产品推荐

