如何过滤内容中的域名?

时间:2015-07-11 20:59:22

标签: text

我如何过滤内容中的域名?

例如....我有一些文字内容,如下:

dropwox.com N/A     $ 8.95  1 day ago
lute.info   N/A     $ 8.95  1 week ago
zolpidem4sleep.com  N/A     $ 8.95  1 week ago
youredmedsinfo.com  N/A     $ 8.95  1 week ago
youngsmhs.com   N/A     $ 8.95  1 week ago
jsntcj.com  N/A     $ 8.95  1 week ago
fioricetdirect2k.com    13,133,796      $ 8.95  1 week ago
dapoxetinebuynow.com    N/A     $ 8.95  1 week ago
86620000.com    N/A     $ 8.95  1 week ago
spidvid.com 1,884,910       $ 480.00    1 week ago
titsforall.com  20,318,475      $ 8.95  1 week ago

我只需要过滤域名并查看此列表:

dropwox.com
lute.info
zolpidem4sleep.com
youredmedsinfo.com
youngsmhs.com

是否有任何工具或在线转换器可以正常工作?

帮帮我

2 个答案:

答案 0 :(得分:0)

如果shell解决方案没问题,你可以这样做:

cut -d' ' -f1 file | sort | uniq

答案 1 :(得分:0)

这是一个古老的问题,但为什么不为后代回答呢? 如果你使用 MacOS 或 Linux,这里有很多工具:

$ cat full_data.txt
dropwox.com N/A     $ 8.95  1 day ago
lute.info   N/A     $ 8.95  1 week ago
zolpidem4sleep.com  N/A     $ 8.95  1 week ago
...

您可以使用以下任何一种:

sed:删除空格后的所有内容:
$ sed 's/ .*//' full_data.txt > domains.txt

grep:使用正则表达式,从开始(^)到第一个空格的所有内容:
$ grep -o "^\S\+" full_data.txt > domains.txt

cut:选择第一部分,空格是一个分隔符:
$ cut -d' ' -f1 full_data.txt > domains.txt

awk:我心爱的awk——选择第一部分,空格是分隔符,然后打印出来:
$ awk '{print $1}' full_data.txt > domains.txt

此外,Perl — 相同,逐行获取第一个“变量”:
$ perl -lane 'print $F[0]' full_data.txt > domains.txt