如何从linux中的文件中提取字符串的不同部分

时间:2012-07-29 19:04:19

标签: linux

我正在使用以下命令提取包含.com扩展名的不同网址,并且可能包含.us或任何国家/地区扩展名。

 grep '\.com' source.txt -m 700 | uniq | sed -e 's/www.//' 
> dest.txt

问题是,它在同一个doamin中提取网址,这是我不想要的东西。例如: abc.yahoo.com efg.yahoo.com

我只需要yahoo.com。我如何使用grep或任何其他命令仅提取不同的域名?

3 个答案:

答案 0 :(得分:0)

也许是这样的?

egrep -io '[a-z0-9\-]+\.[a-z]{2,3}(\.[a-z]{2})?' source.txt

答案 1 :(得分:0)

您是否尝试过使用awk而不是sed并指定"。"作为分隔符,只打印出最后两个字段。

awk -F "." '{ print $(NF-1)"."$NF }'

答案 2 :(得分:0)

也许这样的事情会有所帮助:

egrep -o '[^.]*.com' file