【问题标题】:How to filter domain in content?如何过滤内容中的域?
【发布时间】:2015-09-30 10:39:02
【问题描述】:

如何过滤内容中的域?

例如....我有一些文本内容,像这样:

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

是否有任何工具或在线转换器可以完成这项工作?

帮帮我

【问题讨论】:

  • 我看不出这与 dns 有什么关系。另外,对操作系统有什么偏好吗?在 linux 上这很容易。
  • 抱歉弄错了...

标签: text


【解决方案1】:

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

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

【讨论】:

  • 任何文本编辑器或一些特定的?查看 here 了解使用 Notepad++ 的一些解决方案,即使您使用其他编辑器也可能可以作为开始使用,前提是它支持基于正则表达式的替换。
【解决方案2】:

这是一个古老的问题,但为什么不回答后代呢? 如果你使用 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

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2020-07-30
    相关资源
    最近更新 更多