0

我有一个包含一百万个域名的列表name.txt

hello.com
abc.com
gogogo.us
goodbye.me
...
...

如何仅通过管道传输包含 8 个字母(包括.com)且仅以.comto结尾的域名names_new.txt

我正在寻找一个简单的命令,而不是脚本或任何东西。

4

4 回答 4

4

grep是第一个用于模式匹配的工具:

egrep -x '[a-z]{4}\.com' name.txt > newname.txt
于 2013-03-16T20:03:21.963 回答
0

尝试

 egrep "^[a-z][a-z][a-z][a-z]\.com$" name.txt > names_new.txt
于 2013-03-16T20:00:54.383 回答
0

使用 awk。域名被拆 .分为多个字段。

第一个字段测试长度为 4,因为.com添加了另外 4 个字符。

第二个字段应包含com.

当这两个条件都满足时,将打印该行。

cat name.txt |awk -F. '((length($1)==4)&&($2=="com")){print;}' > names_new.txt 

注意:如果您有子域,该行可能会发现误报,例如: mail.com.nz

于 2013-03-16T20:15:10.887 回答
0

可能有带有破折号或数字的域名。
-i 强制 egrep 匹配,无论大小写。

egrep -i "^[a-z0-9-]{4}\.com$" name.txt > names_new.txt
于 2013-03-20T03:11:22.220 回答