我在name.txt
hello.com
abc.com
gogogo.us
goodbye.me
...
...
如何仅管道包含8个字母的域名(包括.com
),并且只在.com
到names_new.txt
结束?
我正在寻找一个简单的命令而不是脚本或任何东西。
答案 0 :(得分:4)
grep
是第一个获取模式匹配的工具:
egrep -x '[a-z]{4}\.com' name.txt > newname.txt
答案 1 :(得分:0)
尝试
egrep "^[a-z][a-z][a-z][a-z]\.com$" name.txt > names_new.txt
答案 2 :(得分:0)
使用Awk。域名由.
拆分为字段。
第一个字段的长度为4,因为.com
增加了另外4个字符。
第二个字段应包含com
。
当满足两个条件时,将打印该行。
cat name.txt |awk -F. '((length($1)==4)&&($2=="com")){print;}' > names_new.txt
注意:如果您有子域,则该行可能会发现误报,例如:mail.com.nz
答案 3 :(得分:0)
可能存在带有破折号或数字的域名 -i强制egrep无论如何都匹配。
egrep -i "^[a-z0-9-]{4}\.com$" name.txt > names_new.txt