文本替换问题
时间:2011-05-05
来源:互联网
某文件有如下行,每一行是一个单独的域名
baidu.com
www.baidu.cn
www.baidu.com
www.baidu.com.cn
www1.www.baidu.com
现在需要将一级域名提出来,如上面提出来是
baidu.com
baidu.cn
baidu.com.cn
这样的,由于有.com.cn和.cn 的域名,所以边界字符不好定义,不知道用sed和awk怎么实现?
.com.cn和.cn只是举例,还有.com.tw,.com.hk,.net.cn等之类的,所以不对只针对上面两种来处理
作者: ttxy624 发布时间: 2011-05-05
如果只处理cn com com.cn 的话,不用管org什么的,用这个就可以
- [root@bill ~]# echo "baidu.com
- www.baidu.cn
- www.baidu.com
- www.baidu.com.cn
- www1.www.baidu.com"|sed 's/.*\.\([^(com)(cn)\.]*\.[(com)(cn)]\)/\1/'|sort|uniq
- baidu.cn
- baidu.com
- baidu.com.cn
作者: dzhxc 发布时间: 2011-05-05
- awk -vRS='www.' '/com|cn/&&!a[$1]++' file
作者: yinyuemi 发布时间: 2011-05-05
www.baidu.cn
www.baidu.com
www.baidu.com.cn
www1.www.baidu.com
www.com.baidu.cn
com.baidu.cn"|grep -oP '[^.]+(\.(com|cn|org|net|cc))+$'
还要 去重 添加顶级域名
作者: ziyunfei 发布时间: 2011-05-05
作者: cjaizss 发布时间: 2011-05-05
- awk -F. 'NF>2&&$(NF-1)=="com"{printf $(NF-2)"."}{print $(NF-1)"."$NF}' file
作者: ywlscpl 发布时间: 2011-05-05
能帮忙解释一下具体的匹配过程吗?因为我用下面的sed替换是有问题的
sed -r 's/([^\.]+\.)*([^\.]+)\.(com|cn|net|org|hk|tw|cc|me|tv)(.*)$/\2.\3\4/'
这样在有.com.cn的情况下,\2会匹配到.com,\3会匹配到.cn,\4就匹配到空了,就样最后的结果就是.com.cn了。
用 grep -oP '[^.]+(\.(com|cn|org|net|cc))+$' 就不会有问题
不知道具体对于www.baidu.com.cn和www.biadu.com.tw是怎么匹配的,谢谢。
作者: ttxy624 发布时间: 2011-05-05
baidu.com
www1.
现在需要将一级域名提出来,如上面提 ...
ttxy624 发表于 2011-05-05 11:12
$ echo 'baidu.com
www.baidu.cn
www.baidu.com
www.baidu.com.cn
www1.www.baidu.com' | sed -re 's/www[^.]?\.//g' -e 's/\s+$//' | sort -u
baidu.cn
baidu.com
baidu.com.cn
作者: jason680 发布时间: 2011-05-05
another way:
- echo 'baidu.com
- www.baidu.cn
- www.baidu.com
- www.baidu.com.cn
- www1.www.baidu.com' |awk '{gsub(/www[^\.]*./,"\n");NF+=0}!a[$0]++'
- baidu.com
- baidu.cn
- baidu.com.cn
作者: yinyuemi 发布时间: 2011-05-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28