过滤没有路径的域和使用 grep 的 http/https

Posted

技术标签:

【中文标题】过滤没有路径的域和使用 grep 的 http/https【英文标题】:Filter domains without path and http/https with grep 【发布时间】:2022-01-07 22:24:25 【问题描述】:

我想知道如何仅过滤域(没有协议:// 和/路径)。例如我需要这样的东西:echo "Hi it's my web site (https://1stsubdomain.2ndsubdomain.example.com/welcome/)" | grep "some regex"

我想得到这个输出:Hi it's my web site (1stsubdomain.2ndsubdomain.example.com)

域可以有 3 个子域,也可以只有 1 个或没有

我想要的扩展:.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】:

使用-o 仅打印匹配的(非空)部分 请确保包含您想要的所有***域

echo "Hi it's my web site (https://1stsubdomain.2ndsubdomain.example.com/welcome/)" | grep -Eo '[A-Za-z0-9_\.-]*\.(com|net|org)'

【讨论】:

感谢您的回复,但输出错误。输出:n.example.com【参考方案2】:

如果适用,使用sed

$ echo "Hi it's my web site (https://1stsubdomain.2ndsubdomain.example.bid/welcome)" \
| sed -En 's#https://(.*\.)(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\2#p' input_file
Hi it's my web site (1stsubdomain.2ndsubdomain.example.bid)

【讨论】:

如果最后一个字符不是/它不起作用,代码:echo "example.com" \ | sed -En 's#https://(.*\.)(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\2#p' 输出:无 还是不行┌──(root?Ugroon)-[/] └─# echo "1stsubdomain.2ndsubdomain.example.bid" \ | sed -En 's#https://(.*\.)(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\2\3#p' ┌──(根?Ugroon)-[/] └─# 输出:仍然没有@HatLess 你也可以查。如果路径为空或最后一个字符不是/它不起作用 还是不行。屏幕截图:media.discordapp.net/attachments/905154478133641269/…

以上是关于过滤没有路径的域和使用 grep 的 http/https的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不使用 Route 53 的情况下将我的域和子域指向 AWS 托管吗?

匹配MySQL中两个电子邮件地址的域和扩展名?

不需要备案的域和服务器?

使用 Worklight 适配器,我可以在运行时更改过程的域和端口吗?

我在 info.plist 中的 NSAppTransportSecurity 设置不适用于所有已定义的域和子域

正则表达式仅提取 url 的域和子域