我有一个子域的file list,我只想获取域名,这是从行的末尾用.分隔符分隔的两个单词。说明:
blog.clova.line.me
to
line.me从插图中,我执行了下面的命令来剥离子域
cut -d "." -f "2-3"上面的命令只对3个深子域起作用,结果是:只有当中间字符串大于3+深度时才能得到。
clova.line.me -> line.me
blog.clova.line.me -> clova.line因此,我不得不使用shell脚本,如下所示:
while read -r line; do for $(tr -cd "." << ${line} | wc -c) in i; if $i == 2; do cut -d "." -f "2-3"; else if $i == 3; do cut -d "." - f "3-4"
and so-on我认为这并不有效,因为它每次检查一行是否有.字符的数字。我试着用regex:
([a-z]*)\.([a-z]*)$上面的正则表达式不起作用,特别是当域之间有特殊字符时。
mobile.amazon-aws.com --> aws.com
branch.line-dev.net --> dev.net
git.line-apps-dev.net --> dev.net
yugioh.line-games-de-dev.net > dev.net摘要:
length
-
以上规则的子域列表中分离
任何帮助都是值得珍惜的。
发布于 2022-06-07 12:53:58
只需将字符-包含在regex ([a-z-]*)\.([a-z]*)$中即可。
演示:https://regex101.com/r/Yn9Aqm/1
替代方案:您可能需要用点来标记字符串。然后选择数组的最后两个项。这比使用正则表达式容易。
https://stackoverflow.com/questions/72531533
复制相似问题