Chinaunix

标题: 寻找一个天外飞仙级的shell命令 [打印本页]

作者: fangj1n    时间: 2013-07-31 17:22
标题: 寻找一个天外飞仙级的shell命令

目录有8G大小
目录下还有子目录
子目录下放着网页源码文件

需要从该目录下把所有域名提取出来
比如说http://www.baidu.com这样的
把baidu.com这部分提取出来就可以

内存只有512,求一个效率比较高的shell命令,谢谢
作者: reyleon    时间: 2013-07-31 17:43
  1. grep -Proh '(?<=http://www.)([\d\w][.]?)+'  $urdir
复制代码
姑且试试
作者: fangj1n    时间: 2013-07-31 19:06
回复 2# reyleon

这个命令遇到像http://music.baidu.com这样的就提取不了了
还有没有加强版的


   
作者: b4and5    时间: 2013-07-31 21:49
grep -Por "\..*\.*" | sed "s/^.//g" $urdir

试试这个
作者: b4and5    时间: 2013-07-31 21:49
grep -Por "\..*\.*" | sed "s/^.//g" $urdir

试试这个
作者: bikong0411    时间: 2013-08-01 08:36
echo http://music.baidu.com | sed 's/^[^\.]*\.\(.*\)/\1/'
作者: bikong0411    时间: 2013-08-01 08:40
echo http://www.xx.baidu.com | grep -oP '(?<=\.).*'

echo http://www.xx.baidu.com | cut -d'.' -f 2-

echo http://www.xx.baidu.com | awk -vFS='.' '{for(i=2;i<NF;i++){printf $i FS};printf $NF}'
作者: Ray001    时间: 2013-08-01 10:50
perl应该更高效,不过我不会。
作者: 王晓兜    时间: 2013-08-01 15:14
awk -F "." '{print$2"."$3}'
要那个字段就截取那个呗
作者: yyt030    时间: 2013-08-01 15:19
LZ 没有说清楚,是要解析文件里面的内容呢?还是文件名?
作者: justlucifer    时间: 2013-08-01 15:30
我是来学习的
作者: linuxbrook    时间: 2013-08-01 15:38
echo http://www.xx.baidu.com | awk -F"/" '{ print $3 }'
作者: helpid    时间: 2013-08-01 15:46
问题都没说清楚。无法盲目给出答案~
作者: wenhq    时间: 2013-08-02 09:05
没有样本怎么能给方案。感觉大家都一直是猜。LZ不厚道。
作者: itfly3    时间: 2013-08-02 12:39
你可以试下这个
例子,在不同目录不同文件中包含的域名
1www.baidu.com
1music.baidu.com
1toc.wangyi.com
2www.chinaunix.net
2weibo.chinaunix.com
3www.t1.com.cn
3www.t1.net.cn
3web.t2.net.cn
3web.t2.com.cn
www.t3.com.net


#find . -type f |xargs  awk -F '.' '/http:\/\//{if (  $(NF-1) != "net" && $(NF-1) != "com" ){print $(NF-1),".",$NF}else{print $(NF-2),".",$(NF-1),".",$NF}}' |sed -e 's/ //g'

结果:
baidu.com
baidu.com
wangyi.com
chinaunix.net
chinaunix.com
t1.com.cn
t1.net.cn
t2.net.cn
t2.com.cn
t3.com.net
说明:
1、至于重复你可以自行叫sort+uniq去除
2、其中的if语句是要过滤出二级域名,具体还有那些二级郁闷在if判断中添加 && $(NF-1) != "com"(com为其他的一些二级域名,我不详细列出了)
作者: ningkoon    时间: 2013-08-02 12:42
find ./ *.html|xargs grep "http://www.baidu.com"
作者: linuxbrook    时间: 2013-08-02 14:04
echo http://www.baidu.com |awk -F"/" '{ print $3 }'
www.baidu.com





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2