从子域列表中删除主域

问题描述

如何从子域列表中删除主域 例如,如果我有一个文件包含

www.example.com
sub.examle.com
sub2.example.com
examle.com.ar
example.com

我只想提取

sub.example.com
sub2.example.com

我尝试 grep -v '^www.example.com' file.txt 我如何获得子域

解决方法

  • 首先使用P选项使用Perl正则表达式。
  • ^(?!www\.)获取所有非以www开头的字符串。 ((?!www\.)否定前瞻)。
  • \w+\.匹配任意数量的单词字符(等于[a-zA-Z0-9_]),后跟一个句点。
  • \w{4,}匹配超过4个单词字符。
grep -P '^(?!www\.)\w+\.\w{4,}' file.txt
#> sub.examle.com
#> sub2.example.com